protected override void DrawProperties() { RunBehaviourIndex target = (RunBehaviourIndex)Target; bool prevGUIState = GUI.enabled; target.SubTreeIndex = EditorGUILayout.IntField(target.SubTreeIndex); EditorGUILayout.Space(); BTAsset btAsset = BehaviourTreeEditor.GetIndexedSubTreeAsset(target.SubTreeIndex); EditorGUILayout.ObjectField("Behaviour Tree", btAsset, typeof(BTAsset), false); EditorGUILayout.Space(); if (BTEditorCanvas.Current.IsDebuging && btAsset != null && target.BehaviourTree != null) { GUI.enabled = true; if (GUILayout.Button("Preview", GUILayout.Height(24.0f))) { BehaviourTreeEditor.OpenSubtreeDebug(btAsset, target.BehaviourTree); } } else { GUI.enabled = btAsset != null; if (GUILayout.Button("Open", GUILayout.Height(24.0f))) { BehaviourTreeEditor.OpenSubtree(btAsset); } } GUI.enabled = prevGUIState; }
private void OnDoubleClicked() { if (m_node is RunBehaviour) { RunBehaviour rb = (RunBehaviour)m_node; if (rb.BehaviourTreeAsset != null) { if (BTEditorCanvas.Current.IsDebuging && rb.BehaviourTree != null) { BehaviourTreeEditor.OpenSubtreeDebug(rb.BehaviourTreeAsset, rb.BehaviourTree); } else { BehaviourTreeEditor.OpenSubtree(rb.BehaviourTreeAsset); } } } if (m_node is RunBehaviourIndex) { RunBehaviourIndex rb = (RunBehaviourIndex)m_node; if (rb.SubTreeIndex >= 0) { if (BTEditorCanvas.Current.IsDebuging && rb.BehaviourTree != null) { BehaviourTreeEditor.OpenIndexSubtreeDebug(rb.SubTreeIndex, rb.BehaviourTree); } else { BehaviourTreeEditor.OpenIndexSubtree(rb.SubTreeIndex); } } } else if (m_node is NodeGroup) { if (IsRoot) { m_graph.OnPopNodeGroup(); } else { m_graph.OnPushNodeGroup(this); } } }