public virtual IEnumerator IEEnterLoopTo(CoroutineHFSMState toState, params object[] args) { var hfsmList = new List <CoroutineHFSM>(); //倒序 var hfsm = toState.parentHFSM as CoroutineHFSM; while (hfsm != this) { hfsmList.Add(hfsm); hfsm = hfsm.parentHFSM as CoroutineHFSM; } for (int i = hfsmList.Count - 1; i >= 0; i--) { yield return(hfsmList[i].IEEnter(args)); } yield return(toState.IEEnter(args)); }