public override void OnInspectorGUI() { // My God Thank you Odin for making this much easier ... /facepalm if (GUILayout.Button("Open Editor", GUILayout.Height(40))) { SleipnirEditor.Open((GraphAsset)serializedObject.targetObject); } EditorGUI.BeginChangeCheck(); serializedObject.UpdateIfRequiredOrScript(); expanded = EditorGUILayout.BeginFoldoutHeaderGroup(expanded, "Graph Settings"); --EditorGUI.indentLevel; SerializedProperty iterator = serializedObject.GetIterator(); for (bool enterChildren = true; iterator.NextVisible(enterChildren); enterChildren = false) { if (iterator.name == "_graph") { EditorGUILayout.PropertyField(iterator, GUIContent.none, true); } } ++EditorGUI.indentLevel; EditorGUILayout.EndFoldoutHeaderGroup(); serializedObject.ApplyModifiedProperties(); EditorGUI.EndChangeCheck(); }
private void OnClickOpenGraph() { switch (Node) { case GraphReferenceNode graphReference: SleipnirEditor.Open(graphReference.Asset, true); break; case Graph graph: var asset = ScriptableObject.CreateInstance <GraphAsset>(); asset.name = "SubGraph"; asset.Graph = graph; SleipnirEditor.Open(asset, true); break; } }