Beispiel #1
0
        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;
            }
        }