private void SelectBehaviorBrain() { GUIContent content = new GUIContent(BehaviorTreeEditor.active != null ? BehaviorTreeEditor.active.name : "[None Selected]"); float width = EditorStyles.toolbarDropDown.CalcSize(content).x; width = Mathf.Clamp(width, 100f, width); if (GUILayout.Button(content, EditorStyles.toolbarDropDown, GUILayout.Width(width))) { GenericMenu menu = new GenericMenu(); if (BehaviorTreeEditor.active != null) { SelectBehaviorBrainMenu(BehaviorTreeEditor.active, ref menu); } menu.AddItem(new GUIContent("[Craete New]"), false, delegate() { BehaviorTree bt = AssetCreator.CreateAsset <BehaviorTree>(true); if (bt != null) { bt.Name = bt.name; Root root = BehaviorTreeEditorUtility.AddNode <Root>(BehaviorTreeEditor.center, bt); bt.rootNode = root; root.Name = "Root"; AssetDatabase.SaveAssets(); BehaviorTreeEditor.SelectBehaviorTrees(bt); } }); menu.ShowAsContext(); } }
private void SelectBehaviorBrainMenu(BehaviorTree bt, ref GenericMenu menu) { if (bt != null) { GUIContent content = new GUIContent(bt.name); menu.AddItem(content, false, delegate() { BehaviorTreeEditor.SelectBehaviorTrees(bt); }); } }
public static void SelectGameObject(GameObject gameObject) { if (BehaviorTreeEditor.instance == null) { return; } if (gameObject != null) { Brain brain = gameObject.GetComponent <Brain>(); BehaviorTreeEditor.instance._brain = brain; if (brain != null && brain.behaviorTree != null) { BehaviorTreeEditor.instance._activeGameObject = gameObject; BehaviorTreeEditor.SelectBehaviorTrees(brain.behaviorTree); } } }