public override void OnInspectorGUI() { string name = task.Name; BehaviorTreeEditorUtility.BeginInspectorGUI(ref name); if (name != task.Name) { task.Name = name; AssetDatabase.SaveAssets(); } GUILayout.Space(7f); if (BehaviorTreeEditorUtility.DrawHeader("Target Code", false)) { BehaviorTreeEditorUtility.DrawTargetScript(OnSelected, serializedObject); if (task.targetScript != null && BehaviorTreeEditorUtility.DrawTargetMethod(task.targetScript.GetType(), typeof(System.IDisposable), typeof(IEnumerator), ref task.targetMethod)) { CheckMethod(); UpdateName(); UpdateComment(); BehaviorTreeEditor.RepaintAll(); AssetDatabase.SaveAssets(); } } BehaviorTreeEditorUtility.EndInspectorGUI(node); }
public override void OnInspectorGUI() { string name = service.Name; BehaviorTreeEditorUtility.BeginInspectorGUI(ref name); if (name != service.Name) { service.Name = name; AssetDatabase.SaveAssets(); } GUILayout.Space(7f); if (BehaviorTreeEditorUtility.DrawHeader("Target Code", false)) { BehaviorTreeEditorUtility.DrawTargetScript(OnSelected, serializedObject); if (service.targetScript != null && BehaviorTreeEditorUtility.DrawTargetMethod(service.targetScript.GetType(), typeof(void), ref service.targetMethod)) { UpdateName(); UpdateComment(); BehaviorTreeEditor.RepaintAll(); AssetDatabase.SaveAssets(); EditorGUILayout.Space(); } } GUILayout.Space(7f); if (BehaviorTreeEditorUtility.DrawHeader("Service", false)) { DrawTick(); } BehaviorTreeEditorUtility.EndInspectorGUI(service); }
public override void OnInspectorGUI() { string name = decorator.Name; BehaviorTreeEditorUtility.BeginInspectorGUI(ref name); if (name != decorator.Name) { decorator.Name = name; AssetDatabase.SaveAssets(); } GUILayout.Space(7f); if (BehaviorTreeEditorUtility.DrawHeader("Target Code", false)) { BehaviorTreeEditorUtility.DrawTargetScript(OnSelected, serializedObject); if (decorator.targetScript != null && BehaviorTreeEditorUtility.DrawTargetMethod(decorator.targetScript.GetType(), typeof(bool), ref decorator.targetMethod)) { UpdateName("Decorator"); UpdateComment(); BehaviorTreeEditor.RepaintAll(); AssetDatabase.SaveAssets(); EditorGUILayout.Space(); } } GUILayout.Space(7f); if (BehaviorTreeEditorUtility.DrawHeader("Key Query", false)) { DrawInverseCondition(); } GUILayout.Space(7f); if (BehaviorTreeEditorUtility.DrawHeader("Observer Aborts", false)) { DrawTick(); } BehaviorTreeEditorUtility.EndInspectorGUI(decorator); }
public static void Open() { BTEditorWindow = GetWindow <BehaviorTreeEditor>(); BTEditorWindow.Init(); BTEditorWindow.maxSize = new Vector2(1920, 1080); BTEditorWindow.minSize = new Vector2(1600, 900); BehaviorTreeEditorSettings.Instance.Load(); BehaviorTreeEditorSettings.Instance.Init(); }
public static void Open() { BTEditorWindow = GetWindow<BehaviorTreeEditor>(); BTEditorWindow.Init(); BTEditorWindow.maxSize = new Vector2(1920, 1080); BTEditorWindow.minSize = new Vector2(1600, 900); BehaviorTreeEditorSettings.Instance.Load(); BehaviorTreeEditorSettings.Instance.Init(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); if (GUILayout.Button("打开调试器")) { BehaviorTreeEditor.ShowWindow(Agent); } }
public void OnDoubleClick(string guid, Rect rect) { if (Event.current.type == EventType.MouseDown && Event.current.clickCount == 2 && rect.Contains(Event.current.mousePosition)) { BehaviorTreeEditor.ShowEditorWindow(); BehaviorTreeEditor.SelectBehaviorTrees(target as BehaviorTree); } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); //EditorGUILayout.PropertyField(rootnode); if (rootnode.objectReferenceValue == null && GUILayout.Button("Create RootNode")) { string path = ""; var scriptable = ScriptableObject.CreateInstance <RootNode>(); string name = target.name; bool find = false; foreach (string s in AssetDatabase.GetSubFolders("Assets/Project/BehaviorTree")) { if (s.Contains(name)) { find = true; break; } } if (!find) { Debug.Log("Create"); path = AssetDatabase.CreateFolder("Assets/Project/BehaviorTree", name); path = AssetDatabase.GUIDToAssetPath(path); } else { Debug.Log("default"); path = "Assets/Project/BehaviorTree/" + name; } rootnode.objectReferenceValue = scriptable; scriptable.m_RootNode = scriptable; AssetDatabase.CreateAsset(scriptable, path + "/BehaviorTreeNode.asset"); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); serializedObject.ApplyModifiedProperties(); } else if (rootnode.objectReferenceValue != null && GUILayout.Button("BehaviorTree Open")) { BehaviorTreeEditor window = (BehaviorTreeEditor)EditorWindow.GetWindow(typeof(BehaviorTreeEditor)); window.Show(); window.m_RootProperty = (ScriptableObject)rootnode.objectReferenceValue; } serializedObject.ApplyModifiedProperties(); }
private void DrawTick() { GUILayout.BeginHorizontal(); GUILayout.Space(7f); float tick = EditorGUILayout.FloatField("Interval", service.tick); if (tick != service.tick) { if (tick <= 0) { tick = 0.1f; } service.tick = tick; BehaviorTreeEditorUtility.UpdateComment <Service>(service); BehaviorTreeEditor.RepaintAll(); AssetDatabase.SaveAssets(); } GUILayout.EndHorizontal(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); if (GUILayout.Button("BehaviorTree Open")) { BehaviorTreeEditor window = (BehaviorTreeEditor)EditorWindow.GetWindow(typeof(BehaviorTreeEditor)); window.Show(); window.m_RootProperty = (ScriptableObject)target; } if (GUILayout.Button("Refresh")) { RootNode root = serializedObject.targetObject as RootNode; EditorUtility.SetDirty(root); root.m_ListActionNode.Clear(); RefreshChild(root, root); } serializedObject.ApplyModifiedProperties(); }
static public void ShowWindow() { BehaviorTreeEditor window = (BehaviorTreeEditor)EditorWindow.GetWindow(typeof(BehaviorTreeEditor)); window.minSize = new Vector2(600, 600); }
protected void OnChanged() { BehaviorTreeEditorUtility.UpdateComment <Decorator>(decorator); BehaviorTreeEditor.RepaintAll(); AssetDatabase.SaveAssets(); }