Example #1
0
        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);
         }
     }
 }