private void TickBranch()
 {
     for (int i = 0; i < _branchTicks.Count; i++)
     {
         int nodeIndex = _branchTicks.GetValue(i);
         _tree.allNodes[nodeIndex].OnBranchTick();
     }
 }
        /// <summary>
        /// Gets the subtree that is running under a parent.
        /// This does not work directly under parallel nodes since they use their own iterator.
        /// </summary>
        /// <param name="parent"></param>
        /// <returns></returns>
        public BehaviourNode GetRunningSubtree(BehaviourNode parent)
        {
            int parentIndexInTraversal  = GetIndexInTraversal(parent);
            int subtreeIndexInTraversal = parentIndexInTraversal + 1;

            int subtreePreOrder = _traversal.GetValue(subtreeIndexInTraversal);

            return(_tree.allNodes[subtreePreOrder]);
        }