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(); }