protected void BuildChildConnections(NodePort thisPort)
        {
            TreeCompositeNode compositeNode = thisTreeNode as TreeCompositeNode;

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

            var connections = thisPort.GetConnections();
            List <TreeBaseNode> treeNodes = new List <TreeBaseNode>();

            foreach (var connector in connections)
            {
                treeNodes.Add(((BaseNode)connector.node).thisTreeNode);
            }

            compositeNode.SetChildren(treeNodes);
        }
        protected void WalkCompositeNodeChildren(TreeCompositeNode composite, BehaviourTree.BehaviourTree tree)
        {
            var childrenPort = GetOutputPort("children");
            var connections  = childrenPort.GetConnections();
            List <TreeBaseNode> treeNodes = new List <TreeBaseNode>();

            foreach (var connector in connections)
            {
                BaseNode bn = connector.node as BaseNode;
                Debug.Assert(bn != null, nameof(bn) + " != null");
                if (bn == null)
                {
                    Debug.LogError("Behaviour graph node: " + this.name + " was not connected to a child.", this);
                }

                treeNodes.Add(bn.WalkGraphToCreateTree(tree, composite.context));
            }

            composite.SetChildren(treeNodes);
        }