Проблема с корутином

В общем я делаю врага, который вылезает из платформы и залезает туда обратно(своеобразная движущаяся "платформа"). После того как он залез, мне нужно чтобы он вылез снова через определенное время. Для этого я использовал корутин и выставил ожидание в 2 секунды. Теперь враг действительно ждет 2 секунды, перед тем как вылезти, но это также распространилось и на то состояние, когда он полностью вылез

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TentacleController : MonoBehaviour{

[SerializeField] private Transform pos1, pos2;
[SerializeField] private float speed;
[SerializeField] private Transform startPos;

private Vector3 nextPos;

private void Start()
{
    nextPos = startPos.position;
}

void Update()
{
    if (transform.position == pos1.position)
    {
        StartCoroutine(Pos1());
    }
    if (transform.position == pos2.position)
    {
        nextPos = pos1.position;
    }

    transform.position = Vector3.MoveTowards(transform.position, nextPos, speed * Time.deltaTime);

    print(nextPos);
}
public IEnumerator Pos1()
{
    yield return new WaitForSeconds(2f);

    nextPos = pos2.position;
}

}

То есть он задерживается еще и в этом состоянии

Screenshot


Ответы (0 шт):