public override IEnumerator Idle() { //enter float totalTime = 0; agent.SetDestination(transform.position); while (state == CharacterState.Idle) { yield return(null); //stay totalTime += Time.deltaTime; if (totalTime > restTime) { SetState(CharacterState.Walk); break; } if (IsDectectPlayer() && !playerFSM.IsDead()) { SetState(CharacterState.Run); break; } } //exit }