コード例 #1
0
        private bool DoHeader()
        {
            bool foldOut = EditorPrefs.GetBool("FsmVariables", true);
            Rect rect    = GUILayoutUtility.GetRect(new GUIContent("Variables"), FsmEditorStyles.variableHeader, GUILayout.ExpandWidth(true));

            rect.x     -= 1;
            rect.width += 2;
            Rect rect2 = new Rect(rect.width - 10, rect.y + 2, 25, 25);

            EventType eventType = FsmEditorUtility.ReserveEvent(rect2);

            if (GUI.Button(rect, "Variables" + (foldOut?"":"[Click to expand]"), FsmEditorStyles.variableHeader))
            {
                if (Event.current.button == 0)
                {
                    EditorPrefs.SetBool("FsmVariables", !foldOut);
                }
            }

            FsmEditorUtility.ReleaseEvent(eventType);

            bool isEnabled = GUI.enabled;

            GUI.enabled = FsmEditor.Active != null;
            if (GUI.Button(rect2, FsmEditorStyles.toolbarPlus, FsmEditorStyles.label))
            {
                FsmGUIUtility.SubclassMenu <FsmVariable>(CreateVariable);
                Event.current.Use();
            }
            GUI.enabled = isEnabled;
            return(foldOut);
        }
コード例 #2
0
        protected override void OnGUI()
        {
            mainToolbar.OnGUI();
            EventType eventType = FsmEditorUtility.ReserveEvent(variableEditorRect, fsmSelectionRect, preferencesRect);

            ZoomableArea.Begin(new Rect(0f, 0f, scaledCanvasSize.width, scaledCanvasSize.height + 21), scale, IsDocked);
            Begin();

            shortcutEditor.HandleKeyEvents();
            if (FsmEditor.Active != null)
            {
                DoNodes();
            }
            else
            {
                ZoomableArea.End();
            }
            AcceptDragAndDrop();
            End();

            FsmEditorUtility.ReleaseEvent(eventType);
            PreferencesEditor.DoGUI(preferencesRect);
            shortcutEditor.DoGUI(shortcutRect);
            DoFsmSelection(fsmSelectionRect);
            variableEditor.DoGUI(variableEditorRect);
            if (centerView)
            {
                CenterView();
                centerView = false;
            }
            if (FsmEditor.Active != null)
            {
                GUI.Label(new Rect(5, 20, 300, 200), FsmEditor.Active.comment, FsmEditorStyles.instructionLabel);
            }
            else
            {
                GUI.Label(new Rect(5, 20, 300, 200), "Right click to create a state machine.", FsmEditorStyles.instructionLabel);
            }
            Event ev = Event.current;

            if (SelectedNodes.Count == 1 && ev.rawType == EventType.KeyDown && ev.keyCode == KeyCode.Delete && FsmEditor.SelectedTransition != null && EditorUtility.DisplayDialog("Delete selected transition?", FsmEditor.SelectedTransition.FromNode.Name + " -> " + FsmEditor.SelectedTransition.ToNode.Name + "\r\n\r\nYou cannot undo this action.", "Delete", "Cancel"))
            {
                Node node = SelectedTransition.FromNode;
                node.Transitions = ArrayUtility.Remove(node.Transitions, FsmEditor.SelectedTransition);
                FsmEditorUtility.DestroyImmediate(FsmEditor.SelectedTransition);
                ErrorChecker.CheckForErrors();
                EditorUtility.SetDirty(node);
            }
        }
コード例 #3
0
        public bool DoListHeader()
        {
            bool foldOut = EditorPrefs.GetBool(title, false);
            Rect rect    = GUILayoutUtility.GetRect(new GUIContent(title), FsmEditorStyles.variableHeader, GUILayout.ExpandWidth(true));

            rect.x     -= 1;
            rect.width += 2;
            Rect rect2 = new Rect(rect.width - 10, rect.y + 2, 25, 25);

            EventType eventType = FsmEditorUtility.ReserveEvent(rect2);

            if (GUI.Button(rect, title, FsmEditorStyles.variableHeader))
            {
                if (Event.current.button == 0)
                {
                    EditorPrefs.SetBool(title, !foldOut);
                }
                if (Event.current.button == 1 && onHeaderClick != null)
                {
                    onHeaderClick();
                }
            }

            FsmEditorUtility.ReleaseEvent(eventType);

            if (displayAdd && GUI.Button(rect2, FsmEditorStyles.toolbarPlus, FsmEditorStyles.label) && onAddCallback != null)
            {
                onAddCallback();
                if (onSelectCallback != null)
                {
                    onSelectCallback(items.Count);
                }
            }

            if (onDrawHeaderContent != null)
            {
                onDrawHeaderContent(rect);
            }

            return(foldOut);
        }
コード例 #4
0
ファイル: FsmEditor.cs プロジェクト: Alan-Baylis/11
		protected override void OnGUI ()
		{
			mainToolbar.OnGUI ();
			EventType eventType = FsmEditorUtility.ReserveEvent (variableEditorRect,fsmSelectionRect, preferencesRect);
			Begin ();
			shortcutEditor.HandleKeyEvents ();
			if(FsmEditor.Active != null)
			DoNodes ();
			End ();
			FsmEditorUtility.ReleaseEvent (eventType);
			PreferencesEditor.DoGUI (preferencesRect);
			shortcutEditor.DoGUI (shortcutRect);
			DoFsmSelection (fsmSelectionRect);
			variableEditor.DoGUI (variableEditorRect);

			if (centerView) {
				CenterView();	
				centerView=false;
			}
			if (FsmEditor.Active != null) {
				GUI.Label (new Rect (5, 20, 300, 200), FsmEditor.Active.comment, FsmEditorStyles.instructionLabel);
			}
		}