From e1d39cd9b29603d4bfb9f0455d7e4e1de98ce59d Mon Sep 17 00:00:00 2001 From: taoria <445625470@qq.com> Date: Wed, 13 Jul 2022 19:42:30 +0800 Subject: [PATCH] fix: fix serialization bugs --- TNode/Attribute/Ports/InputAttribute.cs | 2 +- TNode/Attribute/Ports/OutputAttribute.cs | 4 +- TNode/Attribute/Ports/PortAttribute.cs | 13 ++++- TNode/JsonSerialize.meta | 3 -- TNode/JsonSerialize/JsonSerializeTool.cs | 36 -------------- TNode/JsonSerialize/JsonSerializeTool.cs.meta | 3 -- TNode/JsonSerialize/NodeDataConverter.cs | 42 ---------------- TNode/JsonSerialize/NodeDataConverter.cs.meta | 3 -- TNode/JsonSerialize/UnityObjectConverter.cs | 24 ---------- .../UnityObjectConverter.cs.meta | 3 -- TNode/JsonSerialize/Vector3Converter.cs | 28 ----------- TNode/JsonSerialize/Vector3Converter.cs.meta | 3 -- TNode/Models/BlackboardDragNodeData.cs | 15 +++--- TNode/Models/GraphData.cs | 48 ++++++------------- TNode/RuntimeCache/RuntimeCache.cs | 5 ++ .../DefaultGraphBlackboardView.cs | 5 ++ .../Editor/Inspector/NodeInspectorInNode.cs | 2 +- .../Editor/NodeGraphView/DataGraphView.cs | 9 ++-- .../Editor/NodeViews/DragNodeView.cs | 6 +-- .../Editor/NodeViews/NodeView.cs | 16 ++++++- TNodeGraphViewImpl/Editor/Resources.meta | 3 ++ .../Resources/GraphViewPropertyField.uss | 5 ++ .../Resources/GraphViewPropertyField.uss.meta | 3 ++ 23 files changed, 80 insertions(+), 201 deletions(-) delete mode 100644 TNode/JsonSerialize.meta delete mode 100644 TNode/JsonSerialize/JsonSerializeTool.cs delete mode 100644 TNode/JsonSerialize/JsonSerializeTool.cs.meta delete mode 100644 TNode/JsonSerialize/NodeDataConverter.cs delete mode 100644 TNode/JsonSerialize/NodeDataConverter.cs.meta delete mode 100644 TNode/JsonSerialize/UnityObjectConverter.cs delete mode 100644 TNode/JsonSerialize/UnityObjectConverter.cs.meta delete mode 100644 TNode/JsonSerialize/Vector3Converter.cs delete mode 100644 TNode/JsonSerialize/Vector3Converter.cs.meta create mode 100644 TNodeGraphViewImpl/Editor/Resources.meta create mode 100644 TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss create mode 100644 TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta diff --git a/TNode/Attribute/Ports/InputAttribute.cs b/TNode/Attribute/Ports/InputAttribute.cs index e0d4b96..3755188 100644 --- a/TNode/Attribute/Ports/InputAttribute.cs +++ b/TNode/Attribute/Ports/InputAttribute.cs @@ -5,7 +5,7 @@ namespace TNode.Attribute.Ports{ [MeansImplicitUse] [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] public class InputAttribute : PortAttribute{ - public InputAttribute(string name="", PortNameHandling nameHandling = PortNameHandling.Auto) : base(name, nameHandling){ + public InputAttribute(string name="", PortNameHandling nameHandling = PortNameHandling.Auto,TypeHandling typeHandling=TypeHandling.Declared) : base(name, nameHandling,typeHandling){ } } } \ No newline at end of file diff --git a/TNode/Attribute/Ports/OutputAttribute.cs b/TNode/Attribute/Ports/OutputAttribute.cs index a0c3908..b9c6888 100644 --- a/TNode/Attribute/Ports/OutputAttribute.cs +++ b/TNode/Attribute/Ports/OutputAttribute.cs @@ -1,6 +1,8 @@ namespace TNode.Attribute.Ports{ public class OutputAttribute:PortAttribute{ - public OutputAttribute(string name="", PortNameHandling nameHandling = PortNameHandling.Auto) : base(name, nameHandling){ + + + public OutputAttribute(string name="", PortNameHandling nameHandling = PortNameHandling.Auto,TypeHandling typeHandling = TypeHandling.Declared) : base(name, nameHandling,typeHandling){ } } } \ No newline at end of file diff --git a/TNode/Attribute/Ports/PortAttribute.cs b/TNode/Attribute/Ports/PortAttribute.cs index cc3be06..1ade1cc 100644 --- a/TNode/Attribute/Ports/PortAttribute.cs +++ b/TNode/Attribute/Ports/PortAttribute.cs @@ -9,17 +9,26 @@ namespace TNode.Attribute.Ports{ Manual, Format, MemberType + } + public enum TypeHandling{ + Declared, + Implemented, + Specified } [MeansImplicitUse] [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] public class PortAttribute:System.Attribute{ public readonly string Name; public readonly PortNameHandling NameHandling; - - public PortAttribute(string name,PortNameHandling nameHandling=PortNameHandling.Auto){ + public Type HandledType; + public TypeHandling TypeHandling{ get; set; } + public PortAttribute(string name,PortNameHandling nameHandling=PortNameHandling.Auto,TypeHandling typeHandling=TypeHandling.Declared){ this.Name = name; this.NameHandling = nameHandling; + this.TypeHandling = typeHandling; } + + } } \ No newline at end of file diff --git a/TNode/JsonSerialize.meta b/TNode/JsonSerialize.meta deleted file mode 100644 index 68eeed3..0000000 --- a/TNode/JsonSerialize.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: ec6119d082a947f58ed6402290b65596 -timeCreated: 1656817965 \ No newline at end of file diff --git a/TNode/JsonSerialize/JsonSerializeTool.cs b/TNode/JsonSerialize/JsonSerializeTool.cs deleted file mode 100644 index 77194ac..0000000 --- a/TNode/JsonSerialize/JsonSerializeTool.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Newtonsoft.Json; -using Newtonsoft.Json.Serialization; - - -namespace TNode.JsonSerialize{ - public static class JsonSerializeTool{ - class WritablePropertiesOnlyResolver : DefaultContractResolver - { - protected override IList CreateProperties(Type type, MemberSerialization memberSerialization) - { - IList props = base.CreateProperties(type, memberSerialization); - return props.Where(p => p.Writable).ToList(); - } - } - public static JsonSerializerSettings JsonSerializerSettings = new JsonSerializerSettings(){ - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - NullValueHandling = NullValueHandling.Ignore, - DateFormatString = "yyyy-MM-dd HH:mm:ss", - Converters = new List { new Vector3Converter(),new UnityObjectConverter() }, - TypeNameHandling = TypeNameHandling.Auto, - ContractResolver = new WritablePropertiesOnlyResolver(), - Formatting = Formatting.Indented - - - }; - - public static JsonSerializerSettings InternalJsonSerializerSettings = new JsonSerializerSettings(){ - ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - NullValueHandling = NullValueHandling.Ignore, - Formatting = Formatting.Indented - }; - } -} \ No newline at end of file diff --git a/TNode/JsonSerialize/JsonSerializeTool.cs.meta b/TNode/JsonSerialize/JsonSerializeTool.cs.meta deleted file mode 100644 index 4480c5b..0000000 --- a/TNode/JsonSerialize/JsonSerializeTool.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 14067671fe28434e9ae2e67a34074c52 -timeCreated: 1656819161 \ No newline at end of file diff --git a/TNode/JsonSerialize/NodeDataConverter.cs b/TNode/JsonSerialize/NodeDataConverter.cs deleted file mode 100644 index a3c5f26..0000000 --- a/TNode/JsonSerialize/NodeDataConverter.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using Newtonsoft.Json; -using TNode.Models; -using UnityEngine; - -namespace TNode.JsonSerialize{ - public class NodeDataConverter:JsonConverter{ - public override void WriteJson(JsonWriter writer, NodeData value, JsonSerializer serializer){ - //Write node data with type information - writer.WriteStartObject(); - writer.WritePropertyName("type"); - Debug.Log(value.GetType().ToString()); - writer.WriteValue(value.GetType().Name); - writer.WritePropertyName("data"); - serializer.Serialize(writer, value, value.GetType()); - - - writer.WriteEndObject(); - - - } - - public override NodeData ReadJson(JsonReader reader, Type objectType, NodeData existingValue, bool hasExistingValue, - JsonSerializer serializer){ - //Load type info - reader.Read(); - - if (reader.Value != null){ - var type = reader.Value.ToString(); - if (type.Trim().Length==0){ - Debug.LogError(type); - throw new JsonSerializationException("Type name is empty"); - } - reader.Read(); - //Load data - var data = serializer.Deserialize(reader, Type.GetType(type)); - return (NodeData) data; - } - return null; - } - } -} \ No newline at end of file diff --git a/TNode/JsonSerialize/NodeDataConverter.cs.meta b/TNode/JsonSerialize/NodeDataConverter.cs.meta deleted file mode 100644 index e29d3c5..0000000 --- a/TNode/JsonSerialize/NodeDataConverter.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6f960539f2744729b35ff3011677d8ba -timeCreated: 1656857829 \ No newline at end of file diff --git a/TNode/JsonSerialize/UnityObjectConverter.cs b/TNode/JsonSerialize/UnityObjectConverter.cs deleted file mode 100644 index 0d7555d..0000000 --- a/TNode/JsonSerialize/UnityObjectConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using Newtonsoft.Json; -using UnityEditor; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace TNode.JsonSerialize{ - public class UnityObjectConverter:JsonConverter{ - public override void WriteJson(JsonWriter writer, Object value, JsonSerializer serializer){ - //Holding the object reference in a string - var go = value; - var guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(go)); - writer.WriteValue(value.GetInstanceID().ToString()); - } - - public override Object ReadJson(JsonReader reader, Type objectType, Object existingValue, bool hasExistingValue, - JsonSerializer serializer){ - //Reading the object reference from the string - var guid = reader.Value.ToString(); - var go = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid)); - return go; - } - } -} \ No newline at end of file diff --git a/TNode/JsonSerialize/UnityObjectConverter.cs.meta b/TNode/JsonSerialize/UnityObjectConverter.cs.meta deleted file mode 100644 index 346f409..0000000 --- a/TNode/JsonSerialize/UnityObjectConverter.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 1c430c5760df439690d22ab18daa9d72 -timeCreated: 1657700744 \ No newline at end of file diff --git a/TNode/JsonSerialize/Vector3Converter.cs b/TNode/JsonSerialize/Vector3Converter.cs deleted file mode 100644 index 00d4f93..0000000 --- a/TNode/JsonSerialize/Vector3Converter.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Numerics; -using Newtonsoft.Json; -namespace TNode.JsonSerialize{ - - public class Vector3Converter:JsonConverter{ - public override void WriteJson(JsonWriter writer, Vector3 value, JsonSerializer serializer){ - writer.WriteStartArray(); - writer.WriteValue(value.X); - writer.WriteValue(value.Y); - writer.WriteValue(value.Z); - writer.WriteEndArray(); - } - - public override Vector3 ReadJson(JsonReader reader, Type objectType, Vector3 existingValue, bool hasExistingValue, JsonSerializer serializer){ - if (reader.TokenType == JsonToken.Null){ - return default(Vector3); - } - else{ - var array = serializer.Deserialize(reader); - - if (array != null) return new Vector3(array[0], array[1], array[2]); - } - return default(Vector3); - - } - } -} \ No newline at end of file diff --git a/TNode/JsonSerialize/Vector3Converter.cs.meta b/TNode/JsonSerialize/Vector3Converter.cs.meta deleted file mode 100644 index dbbbc50..0000000 --- a/TNode/JsonSerialize/Vector3Converter.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: fecb77054ad348239341a58c50549879 -timeCreated: 1656817975 \ No newline at end of file diff --git a/TNode/Models/BlackboardDragNodeData.cs b/TNode/Models/BlackboardDragNodeData.cs index 6b1680b..3fb0891 100644 --- a/TNode/Models/BlackboardDragNodeData.cs +++ b/TNode/Models/BlackboardDragNodeData.cs @@ -4,15 +4,18 @@ using Newtonsoft.Json; using TNode.Attribute; using TNode.Attribute.Ports; using TNode.RuntimeCache; +using UnityEngine; +using UnityEngine.Serialization; namespace TNode.Models{ - public class BlackboardDragNodeData:NodeData{ - private string _blackDragData; - [JsonIgnore] - private BlackboardData _blackboardData; + [Serializable] + public class BlackboardDragNodeData:NodeData{ + public string blackDragData; + [SerializeReference] + public BlackboardData blackboardData; - [Output("",PortNameHandling.MemberType)] - public T Value => _blackboardData.GetValue(_blackDragData); + [Output("",PortNameHandling.MemberType,TypeHandling.Implemented)] + public object Value => blackboardData.GetValue(blackDragData); public BlackboardDragNodeData(){ diff --git a/TNode/Models/GraphData.cs b/TNode/Models/GraphData.cs index 8f7031b..d5c01e4 100644 --- a/TNode/Models/GraphData.cs +++ b/TNode/Models/GraphData.cs @@ -1,8 +1,7 @@ using System; using System.Collections.Generic; -using UnityEngine; using Newtonsoft.Json; -using TNode.JsonSerialize; +using UnityEngine; using UnityEngine.Serialization; namespace TNode.Models{ @@ -10,18 +9,12 @@ namespace TNode.Models{ public class GraphData:ScriptableObject,ISerializationCallbackReceiver{ public Dictionary NodeDictionary = new Dictionary(); + [SerializeReference] + public List nodeList = new List(); [SerializeField] protected List nodeLinks; - [TextArea(1,10)] - [SerializeField] - //[HideInInspector] - private string jsonNodeData; - [TextArea(1,10)] - [SerializeField] - private string jsonBlackboard; - - + [SerializeReference] public BlackboardData blackboardData; public List NodeLinks{ @@ -34,32 +27,19 @@ namespace TNode.Models{ public void OnBeforeSerialize(){ - if (nodeLinks != null){ - jsonNodeData = JsonConvert.SerializeObject(NodeDictionary,JsonSerializeTool.JsonSerializerSettings); - - } - - if (jsonBlackboard != null){ - jsonBlackboard = JsonConvert.SerializeObject(blackboardData,typeof(object),JsonSerializeTool.JsonSerializerSettings); - + + + nodeList.Clear(); + foreach(var node in NodeDictionary.Values){ + nodeList.Add(node); } } public void OnAfterDeserialize(){ - //Deserialize node dictionary - var deserializedData = JsonConvert.DeserializeObject>(jsonNodeData,JsonSerializeTool.JsonSerializerSettings); - NodeDictionary = deserializedData; - //Deserialize blackboard data - // var deserializedBlackboard = - // JsonConvert.DeserializeObject(jsonBlackboard,JsonSerializeTool.JsonSerializerSettings); - // blackboardData = deserializedBlackboard as BlackboardData; - // Debug.Log(deserializedBlackboard); - } - - public void OnEnable(){ - var deserializedBlackboard = - JsonConvert.DeserializeObject(jsonBlackboard,JsonSerializeTool.JsonSerializerSettings); - blackboardData = deserializedBlackboard as BlackboardData; - Debug.Log(deserializedBlackboard); + NodeDictionary.Clear(); + foreach(var node in nodeList){ + NodeDictionary.Add(node.id,node); + } } + } } \ No newline at end of file diff --git a/TNode/RuntimeCache/RuntimeCache.cs b/TNode/RuntimeCache/RuntimeCache.cs index 4310a3e..b46593a 100644 --- a/TNode/RuntimeCache/RuntimeCache.cs +++ b/TNode/RuntimeCache/RuntimeCache.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Reflection; +using EasyRandomGenerator.Blackboard; using JetBrains.Annotations; using TNode.Models; using Unity.VisualScripting; @@ -21,6 +22,10 @@ namespace TNode.RuntimeCache{ new (); private static readonly string[] ExcludedAssemblies = new string[]{"Microsoft", "UnityEngine","UnityEditor","mscorlib","System"}; + + public RuntimeCache(){ + RegisterRuntimeBlackboard(typeof(EasyBlackboardData)); + } public void RegisterRuntimeBlackboard(Type type){ if(!CachedDelegatesForGettingValue.ContainsKey(type)){ CachedDelegatesForGettingValue.Add(type, new Dictionary()); diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs b/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs index 80eaeb2..69ffebc 100644 --- a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs +++ b/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs @@ -14,6 +14,11 @@ using UnityEngine.UIElements; namespace TNodeGraphViewImpl.Editor.GraphBlackboard{ [ViewComponent] public class DefaultGraphBlackboardView:GraphBlackboardView{ + public DefaultGraphBlackboardView():base(){ + //the label and the field gap smaller + styleSheets.Add( Resources.Load("GraphViewPropertyField")); + + } protected override void UpdateBlackboard(BlackboardData data){ var serializedObject = new SerializedObject((BlackboardDataWrapper)data); foreach (var field in data.GetType() diff --git a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs b/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs index b0c573c..e016bfe 100644 --- a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs +++ b/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs @@ -38,7 +38,7 @@ namespace TNode.Editor.Inspector{ private void RefreshPropertyDrawer(){ //Check if the data's type is a generic type of BlackboardDragNodeData<> - if (_data.GetType().IsSubclassOf(typeof(BlackboardDragNodeData<>))){ + if (_data.GetType().IsSubclassOf(typeof(BlackboardDragNodeData))){ return; } var serializedObject = new SerializedObject((NodeDataWrapper)_data); diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs b/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs index 7ef4c68..ae5d75a 100644 --- a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs +++ b/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs @@ -105,11 +105,10 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{ foreach (var selectable in blackboardFields){ if(selectable is { } field) { //Make a constructor of BlackboardDragNodeData by reflection - var specifiedType = - typeof(BlackboardDragNodeData<>).MakeGenericType(field.BlackboardProperty.PropertyType); - //Create a new instance of specified type - var dragNodeData = NodeCreator.InstantiateNodeData(specifiedType); - this.AddTNode(dragNodeData,new Rect(evt.mousePosition,new Vector2(200,200))); + var dragNodeData = NodeCreator.InstantiateNodeData(); + dragNodeData.blackboardData = _data.blackboardData; + dragNodeData.blackDragData = field.BlackboardProperty.PropertyName; + AddTNode(dragNodeData,new Rect(evt.mousePosition,new Vector2(200,200))); } } diff --git a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs b/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs index a425150..ad80fae 100644 --- a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs +++ b/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs @@ -4,11 +4,9 @@ using TNodeGraphViewImpl.Editor.NodeViews; namespace TNode.Editor.NodeViews{ [ViewComponent] - public class DragBaseNodeView:BaseNodeView>{ + public class DragBaseNodeView:BaseNodeView{ public DragBaseNodeView() : base(){ - //Make capsule like style - - this.titleContainer.visible = false; + this.titleContainer.visible = false; this.titleContainer.RemoveFromHierarchy(); } } diff --git a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs b/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs index 9a6bd90..cdbf1ba 100644 --- a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs +++ b/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs @@ -76,6 +76,18 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{ throw new ArgumentOutOfRangeException(); } } + protected virtual Type BuildPortType(PortAttribute portAttribute,PropertyInfo propertyInfo){ + switch (portAttribute.TypeHandling){ + case TypeHandling.Declared : + return propertyInfo.PropertyType; + case TypeHandling.Implemented: + return propertyInfo.GetValue(_data)?.GetType(); + case TypeHandling.Specified: + return portAttribute.HandledType??typeof(object); + default: + throw new ArgumentOutOfRangeException(); + } + } /// /// of course you can override this method to build your own port builder /// @@ -84,7 +96,7 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{ foreach (var propertyInfo in propertyInfos){ if (propertyInfo.GetCustomAttributes(typeof(OutputAttribute),true).FirstOrDefault() is OutputAttribute attribute){ - Port port = InstantiatePort(Orientation.Horizontal, Direction.Output,Port.Capacity.Multi,propertyInfo.PropertyType); + Port port = InstantiatePort(Orientation.Horizontal, Direction.Output,Port.Capacity.Multi,BuildPortType(attribute,propertyInfo)); this.outputContainer.Add(port); var portName = BuildPortName(attribute,propertyInfo); port.portName = portName; @@ -93,7 +105,7 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{ } foreach (var propertyInfo in propertyInfos){ if(propertyInfo.GetCustomAttributes(typeof(InputAttribute),true).FirstOrDefault() is InputAttribute attribute){ - Port port = InstantiatePort(Orientation.Horizontal, Direction.Input,Port.Capacity.Single,propertyInfo.PropertyType); + Port port = InstantiatePort(Orientation.Horizontal, Direction.Input,Port.Capacity.Single,BuildPortType(attribute,propertyInfo)); this.inputContainer.Add(port); var portName = BuildPortName(attribute,propertyInfo); port.portName = portName; diff --git a/TNodeGraphViewImpl/Editor/Resources.meta b/TNodeGraphViewImpl/Editor/Resources.meta new file mode 100644 index 0000000..f5dfec6 --- /dev/null +++ b/TNodeGraphViewImpl/Editor/Resources.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7d628735dd6d477c88ed608b684c50b4 +timeCreated: 1657702172 \ No newline at end of file diff --git a/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss b/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss new file mode 100644 index 0000000..69a2c57 --- /dev/null +++ b/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss @@ -0,0 +1,5 @@ +.unity-property-field__label { + width: 75px; + min-width: 100px; + max-width: 150px; +} \ No newline at end of file diff --git a/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta b/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta new file mode 100644 index 0000000..74ae713 --- /dev/null +++ b/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2b84790a3a0445f894b9c496ad1e716b +timeCreated: 1657702197 \ No newline at end of file