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;
}