private void OnSelected(ReorderableList reorderableList)
        {
            int selected = reorderableList.index;

            if (selected < 0 || reorderableList.serializedProperty.arraySize == 0)
            {
                if (conditionsEditor != null)
                {
                    DestroyImmediate(conditionsEditor);
                    conditionsEditor = null;
                }

                selectedTransitionProp = null;
                return;
            }

            selectedTransitionProp = serializedScene.GetTransitionAtIndex(selected).TransitionProperty;

            if (conditionsEditor == null)
            {
                conditionsEditor = CreateInstance <ConditionsListEditor>();
            }

            conditionsEditor.Initialize(SerializedSceneManager,
                                        serializedScene.GetTransitionAtIndex(selected).ConditionsProp);

            conditionsEditor.ListHeader = "Transition Conditions";
        }
Example #2
0
        private void NodeEditor_OnSelectionChanged(object sender, System.EventArgs e)
        {
            lockConditionsEditor = null;
            transitionListEditor = null;
            serializedScene      = null;

            NodeEditor.NodeEditor nodeEditor = sender as NodeEditor.NodeEditor;

            IEnumerable <Node> selectedNodes = nodeEditor.GetSelectedNodes();

            foreach (Node selected in selectedNodes)
            {
                SceneNode sceneNode = selected as SceneNode;

                if (sceneNode == null)
                {
                    continue;
                }

                SetSelectedNode(sceneNode);

                if (transitionListEditor == null)
                {
                    transitionListEditor = CreateInstance <TransitionListEditor>();
                    transitionListEditor.OnRequestRepaint += TransitionListEditor_OnRequestRepaint;
                    transitionListEditor.Initialize(serializedManager, serializedScene);
                }

                return;
            }

            IEnumerable <Connector> selectedConnectors = nodeEditor.GetSelectedConnectors();

            foreach (Connector selected in selectedConnectors)
            {
                SceneNode startNode = selected.GetStartNode() as SceneNode;
                SceneNode endNode   = selected.GetEndNode() as SceneNode;

                SetSelectedNode(startNode);

                if (transitionListEditor == null)
                {
                    transitionListEditor = CreateInstance <TransitionListEditor>();
                    transitionListEditor.Initialize(serializedManager, serializedScene);
                }

                transitionListEditor.SetSelectedTransition(endNode.SceneId);
            }
        }
Example #3
0
        private void DrawLockConditons(bool isAnyScene)
        {
            if (lockConditionsEditor == null && !isAnyScene)
            {
                lockConditionsEditor            = CreateInstance <ConditionsListEditor>();
                lockConditionsEditor.ListHeader = "Lock Conditions";
                lockConditionsEditor.Initialize(serializedManager, serializedScene.LockConditionsProp);
            }

            if (lockConditionsEditor != null)
            {
                Rect foldoutRect = EditorGUILayout.BeginHorizontal();
                lockConditionsEditor.ShowElements = showLockConditions;

                lockConditionsEditor.OnInspectorGUI();

                EditorGUILayout.EndHorizontal();

                foldoutRect.width  = 10;
                showLockConditions = EditorGUI.Foldout(foldoutRect, showLockConditions, GUIContent.none);
            }
        }