IEnumerator DoWalkRoute(INonPlayableCharacter character) { int currentIndex = 0; while (currentIndex < character.GetActionQueue().Length) { if (!character.GetMovement().GetIsMovingToPosition()) { yield return(new WaitForFixedUpdate()); } if (character.GetCurrentPosition() != character.GetActionQueue()[currentIndex].GetTargetPosition()) { character.GetMovement().MoveToPosition(character.GetActionQueue()[currentIndex].GetTargetPosition()); } else { yield return(new WaitForSeconds(character.GetActionQueue()[currentIndex].GetTimeDuration())); currentIndex = currentIndex < character.GetActionQueue().Length - 1 ? currentIndex + 1 : 0; } yield return(new WaitForFixedUpdate()); } }
void Start() { theGirlfriend = theGirlfriendObject.GetComponent <TheGirlfriend>(); StartCoroutine("DoWalkRoute", theGirlfriend); bradChad = bradChadObject.GetComponent <BradChad>(); StartCoroutine("DoWalkRoute", bradChad); }