public override void UpdateCallBack(float deltaTime) { if (isTransition) { //判断当前过度是否结束 if (tempTransition.TransitionCallBack()) { DoTransition(tempTransition); isTransition = false; } return; } base.UpdateCallBack(deltaTime); //如果当前状态为空了,则将当前状态设为默认状态 if (currentState == null) { currentState = defaultState; } List <ITransition> temp = currentState.Transitions; int count = temp.Count; for (int i = 0; i < count; i++) { ITransition it = temp[i]; //满足条件可以开始过度 if (it.IsBeginTransition()) { isTransition = true; tempTransition = it; return; } } currentState.UpdateCallBack(deltaTime); }