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(); } }
public static void CreateBehaviorTrees() { // This code is borrowed from ICode(https://www.assetstore.unity3d.com/en/#!/content/13761) BehaviorTree bt = AssetCreator.CreateAsset <BehaviorTree>(false); if (bt != null) { bt.Name = bt.name; Root root = BehaviorTreeEditorUtility.AddNode <Root>(BehaviorTreeEditor.center, bt); bt.rootNode = root; root.Name = "Root"; AssetDatabase.SaveAssets(); } }