protected void SetDecoratorNodeChild(BaseNode incomingNode)
        {
            TreeDecoratorNode decNode = thisTreeNode as TreeDecoratorNode;

            UnityEngine.Debug.Assert(
                decNode != null, nameof(decNode) + " != null");

            decNode.child = incomingNode.thisTreeNode;
        }
        protected void RemoveDecoratorNodeChild()
        {
            childNode = null;

            TreeDecoratorNode decNode = thisTreeNode as TreeDecoratorNode;

            UnityEngine.Debug.Assert(
                decNode != null, nameof(decNode) + " != null");

            decNode.child = null;
        }
        protected TreeDecoratorNode WalkDecoratorNode(BehaviourTree.BehaviourTree tree, TreeDecoratorNode node)
        {
            var nodePort = GetOutputPort("childNode");

            BaseNode connectionBaseNode = nodePort.Connection.node as BaseNode;

            Debug.Assert(connectionBaseNode != null,
                         nameof(connectionBaseNode) + " != null");

            if (connectionBaseNode == null)
            {
                Debug.LogError("Behaviour graph node: " + this.name +
                               " was not connected to a child.", this);
            }
            node.child = connectionBaseNode.WalkGraphToCreateTree(tree, node.context);
            return(node);
        }