/// <summary>
        /// A Unity callback called when the object goes out of scope.
        /// </summary>
        void OnDisable () {
            if (m_StatesEditor != null) {
                m_StatesEditor.DisposeProperty();
                m_StatesEditor = null;
            }

            BehaviourWindow.activeNodeChanged -= this.ActiveNodeChanged;
        }
        /// <summary>
        /// A Unity callback called when the object is loaded.
        /// </summary>
        void OnEnable () {
            m_Tree = target as InternalBehaviourTree;
            BehaviourWindow.activeNodeChanged += this.ActiveNodeChanged;

            m_StatesEditor = new ParentStatesEditor(m_Tree, serializedObject.FindProperty("m_Position"));

            // Try to create an editor for the current active node
            this.ActiveNodeChanged();
        }
        /// <summary>
        /// A Unity callback called when the object goes out of scope.
        /// </summary>
        void OnDisable()
        {
            if (m_StatesEditor != null)
            {
                m_StatesEditor.DisposeProperty();
                m_StatesEditor = null;
            }

            BehaviourWindow.activeNodeChanged -= this.ActiveNodeChanged;
        }
        /// <summary>
        /// A Unity callback called when the object is loaded.
        /// </summary>
        void OnEnable()
        {
            m_Tree = target as InternalBehaviourTree;
            BehaviourWindow.activeNodeChanged += this.ActiveNodeChanged;

            m_StatesEditor = new ParentStatesEditor(m_Tree, serializedObject.FindProperty("m_Position"));

            // Try to create an editor for the current active node
            this.ActiveNodeChanged();
        }