BehaviorTree.PriortySelectorNode.UpdateInternal C# (CSharp) Method

UpdateInternal() protected method

protected UpdateInternal ( object rInput, object rOutput ) : NodeRunningStatus
rInput object
rOutput object
return NodeRunningStatus
        protected override NodeRunningStatus UpdateInternal(object rInput, object rOutput)
        {
            NodeRunningStatus rIsFinish = NodeRunningStatus.Finish;

            if(CheckIndexSafe(mSelectIndexCur))
            {
                if(mSelectIndexLast != mSelectIndexCur)
                {
                    if(CheckIndexSafe(mSelectIndexLast))
                    {
                        var rNode = mChildren[mSelectIndexLast];
                        rNode.Transition(rInput);
                    }
                    mSelectIndexLast = mSelectIndexCur;
                }
            }

            if(CheckIndexSafe(mSelectIndexLast))
            {
                var rNode = mChildren[mSelectIndexLast];
                rIsFinish = rNode.Update(rInput, rOutput);

                if(rIsFinish != NodeRunningStatus.Executing)
                {
                    mSelectIndexLast = _invalidChildNodeIndex;
                }

            }
            return rIsFinish;
        }