@EugeniuszSZ

Как сделать так чтобы корутина срабатывала несколько раз?

Есть корутина, в которой Объект "enemy" двигается к объекту "player" и останавливается если достиг позиции объекта "player" + 1 по оси x. Как сделать так, чтобы корутина снова сработала и "enemy" опять двигался к "player"+1 по оси x, если "player" сменил позицию?
StartCoroutine(EnemyMoving(player, enemySpeed, UnitVector));

    public IEnumerator EnemyMoving(GameObject _player, int _enemySpeed, Vector3 _UnitVector)
    {
       while (_player.transform.position.x + 1 < transform.position.x || _player.transform.position.x - 1 > transform.position.x)
       {
            transform.Translate(_UnitVector * _enemySpeed * Time.deltaTime);
            yield return null;
       }
    }
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Оберни ещё одним циклом, который будет жить, пока жив игрок. А этот цикл замени на просто условия при котором нужно двигаться.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы