diff --git a/Scripts/Editor/NodeEditor.cs b/Scripts/Editor/NodeEditor.cs index f131f66..d222f9e 100644 --- a/Scripts/Editor/NodeEditor.cs +++ b/Scripts/Editor/NodeEditor.cs @@ -52,6 +52,7 @@ namespace XNodeEditor { string[] excludes = { "m_Script", "graph", "position", "ports" }; portPositions = new Dictionary(); + // Iterate through serialized properties and draw them like the Inspector (But with ports) SerializedProperty iterator = serializedObject.GetIterator(); bool enterChildren = true; EditorGUIUtility.labelWidth = 84; @@ -60,6 +61,12 @@ namespace XNodeEditor { if (excludes.Contains(iterator.name)) continue; NodeEditorGUILayout.PropertyField(iterator, true); } + + // Iterate through instance ports and draw them in the order in which they are serialized + foreach(XNode.NodePort instancePort in target.InstancePorts) { + NodeEditorGUILayout.PortField(instancePort); + } + serializedObject.ApplyModifiedProperties(); } diff --git a/Scripts/Editor/NodeEditorGUILayout.cs b/Scripts/Editor/NodeEditorGUILayout.cs index ee4394d..7cc1a21 100644 --- a/Scripts/Editor/NodeEditorGUILayout.cs +++ b/Scripts/Editor/NodeEditorGUILayout.cs @@ -154,7 +154,7 @@ namespace XNodeEditor { private static System.Type GetType(SerializedProperty property) { System.Type parentType = property.serializedObject.targetObject.GetType(); - System.Reflection.FieldInfo fi = NodeEditorWindow.GetFieldInfo(property.serializedObject.targetObject.GetType(), property.name); + System.Reflection.FieldInfo fi = NodeEditorWindow.GetFieldInfo(parentType, property.name); return fi.FieldType; }