mirror of
https://github.com/Siccity/xNode.git
synced 2025-12-20 17:26:02 +08:00
Update NodeEditor.cs
I initially found out about this through https://docs.unity3d.com/ScriptReference/Editor.html specifically these two comments: ```csharp // Update the serializedProperty - always do this in the beginning of OnInspectorGUI. serializedObject.Update (); ... // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. serializedObject.ApplyModifiedProperties (); ``` I'm assuming, although I don't know for sure, that since OnBodyGUI displays the serialize objects in the custom inspector, that it must follow the same rules as well. Either way these lines of code solve for me the glitch: pressing undo while typing and getting a disconnect between the node and the inspector.
This commit is contained in:
parent
83acd16d4b
commit
ffc061f64e
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
@ -43,6 +43,10 @@ namespace XNodeEditor {
|
|||||||
|
|
||||||
/// <summary> Draws standard field editors for all public fields </summary>
|
/// <summary> Draws standard field editors for all public fields </summary>
|
||||||
public virtual void OnBodyGUI() {
|
public virtual void OnBodyGUI() {
|
||||||
|
// Unity specifically requires this to save/update any serial object.
|
||||||
|
// serializedObject.Update(); must go at the start of an inspector gui, and
|
||||||
|
// serializedObject.ApplyModifiedProperties(); goes at the end.
|
||||||
|
serializedObject.Update();
|
||||||
string[] excludes = { "m_Script", "graph", "position", "ports" };
|
string[] excludes = { "m_Script", "graph", "position", "ports" };
|
||||||
portPositions = new Dictionary<XNode.NodePort, Vector2>();
|
portPositions = new Dictionary<XNode.NodePort, Vector2>();
|
||||||
|
|
||||||
@ -54,6 +58,7 @@ namespace XNodeEditor {
|
|||||||
if (excludes.Contains(iterator.name)) continue;
|
if (excludes.Contains(iterator.name)) continue;
|
||||||
NodeEditorGUILayout.PropertyField(iterator, true);
|
NodeEditorGUILayout.PropertyField(iterator, true);
|
||||||
}
|
}
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual int GetWidth() {
|
public virtual int GetWidth() {
|
||||||
@ -93,4 +98,5 @@ namespace XNodeEditor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user