mirror of
https://github.com/Siccity/xNode.git
synced 2026-02-04 22:34:54 +08:00
Fixed #107 - OnValidate
OnValidate is now called on rename as well. Removed outdated OnValidate fix. It probably never worked anyway.
This commit is contained in:
parent
d0e1cd5d66
commit
8e0bd964ad
@ -282,12 +282,6 @@ namespace XNodeEditor {
|
||||
selectionCache = new List<UnityEngine.Object>(Selection.objects);
|
||||
}
|
||||
|
||||
System.Reflection.MethodInfo onValidate = null;
|
||||
if (Selection.activeObject != null && Selection.activeObject is XNode.Node) {
|
||||
onValidate = Selection.activeObject.GetType().GetMethod("OnValidate");
|
||||
if (onValidate != null) EditorGUI.BeginChangeCheck();
|
||||
}
|
||||
|
||||
BeginZoomed();
|
||||
|
||||
Vector2 mousePos = Event.current.mousePosition;
|
||||
@ -420,11 +414,6 @@ namespace XNodeEditor {
|
||||
|
||||
if (e.type != EventType.Layout && currentActivity == NodeActivity.DragGrid) Selection.objects = preSelection.ToArray();
|
||||
EndZoomed();
|
||||
|
||||
//If a change in is detected in the selected node, call OnValidate method.
|
||||
//This is done through reflection because OnValidate is only relevant in editor,
|
||||
//and thus, the code should not be included in build.
|
||||
if (onValidate != null && EditorGUI.EndChangeCheck()) onValidate.Invoke(Selection.activeObject, null);
|
||||
}
|
||||
|
||||
private bool ShouldBeCulled(XNode.Node node) {
|
||||
|
||||
@ -103,6 +103,15 @@ namespace XNodeEditor {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> Call OnValidate on target </summary>
|
||||
public static void TriggerOnValidate(UnityEngine.Object target) {
|
||||
System.Reflection.MethodInfo onValidate = null;
|
||||
if (target != null) {
|
||||
onValidate = target.GetType().GetMethod("OnValidate", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
|
||||
if (onValidate != null) onValidate.Invoke(target, null);
|
||||
}
|
||||
}
|
||||
|
||||
public static KeyValuePair<ContextMenu, MethodInfo>[] GetContextMenuMethods(object obj) {
|
||||
Type type = obj.GetType();
|
||||
MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
|
||||
|
||||
@ -51,6 +51,7 @@ namespace XNodeEditor {
|
||||
target.name = NodeEditorUtilities.NodeDefaultName(target.GetType());
|
||||
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
|
||||
Close();
|
||||
NodeEditorWindow.TriggerOnValidate(target);
|
||||
}
|
||||
}
|
||||
// Rename asset to input text
|
||||
@ -59,6 +60,7 @@ namespace XNodeEditor {
|
||||
target.name = input;
|
||||
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
|
||||
Close();
|
||||
NodeEditorWindow.TriggerOnValidate(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user