コード例 #1
0
        protected override void CanvasContextMenu()
        {
            if (_currentEvent.type != EventType.MouseDown || _currentEvent.button != 1 || _currentEvent.clickCount != 1 || BehaviorTreesEditor.active == null)
            {
                return;
            }

            GenericMenu canvasMenu = new GenericMenu();

            // Composite
            canvasMenu.AddItem(new GUIContent("Create Composite/Selector"), false, delegate()
            {
                BehaviorTreesEditorUtility.AddNode <Selector>(_mousePosition, BehaviorTreesEditor.active);
            });
            canvasMenu.AddItem(new GUIContent("Create Composite/Sequence"), false, delegate()
            {
                BehaviorTreesEditorUtility.AddNode <Sequence>(_mousePosition, BehaviorTreesEditor.active);
            });
            // Task
            canvasMenu.AddItem(new GUIContent("Create Task/Wait"), false, delegate()
            {
                BehaviorTreesEditorUtility.AddNode <Wait>(_mousePosition, BehaviorTreesEditor.active);
            });
            canvasMenu.AddSeparator("Create Task/");
            canvasMenu.AddItem(new GUIContent("Create Task/Task"), false, delegate()
            {
                BehaviorTreesEditorUtility.AddNode <Task>(_mousePosition, BehaviorTreesEditor.active);
            });
            canvasMenu.AddSeparator("Empty/");
            canvasMenu.AddItem(new GUIContent("Empty/Task"), false, delegate()
            {
                BehaviorTreesEditorUtility.EmptyNode(_mousePosition, BehaviorTreesEditor.active);
            });
            canvasMenu.AddSeparator("Save/");
            canvasMenu.AddItem(new GUIContent("Save/Save"), false, delegate()
            {
                AssetCreator.SaveAIAsset();
            });
            canvasMenu.AddSeparator("Refresh/");
            canvasMenu.AddItem(new GUIContent("Refresh/Refresh"), false, delegate()
            {
                AssetCreator.Refresh();
            });

            canvasMenu.ShowAsContext();
        }