public override EStatusBTRunning OnTick() { EStatusBTRunning status = EStatusBTRunning.Finish; if (m_Status == EStatusNodeTerminal.Ready) { OnEnter(); m_needExit = true; m_Status = EStatusNodeTerminal.Running; SetActiveNode(this); } if (m_Status == EStatusNodeTerminal.Running) { status = OnExecute(); if (status == EStatusBTRunning.Finish || status == EStatusBTRunning.ErrorTransition) { m_Status = EStatusNodeTerminal.Finish; } } if (m_Status == EStatusNodeTerminal.Finish) { if (m_needExit) { OnExit(); } m_needExit = false; m_Status = EStatusNodeTerminal.Ready; SetActiveNode(null); return(status); } return(status); }
public override void OnTransition() { if (m_needExit) { OnExit(); } SetActiveNode(null); m_Status = EStatusNodeTerminal.Ready; m_needExit = false; }