Объект юнити после запуска сцены меняет позицию по оси Z

В 2D проекте есть объект Enemy, который при движении меняет свою позицию по оси Z на отрицательное значение и становится невидимым при тесте игры, но если он будет стоять на месте, то всё хорошо. Объекты к которым он двигается имеют неотрицательную координату по Z. Код:

void Update()
{
    if (Vector2.Distance(transform.position, player.position) <= viewingDistance)
    {

        if (Vector2.Distance(transform.position, player.position) > stoppingDistance)
        {
            transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);                
        }
            else if (Vector2.Distance(transform.position, player.position) < stoppingDistance && (Vector2.Distance(transform.position, player.position) > retreatDistance))
            {
                transform.position = this.transform.position;
            }
            else if (Vector2.Distance(transform.position, player.position) < retreatDistance)
            {
                transform.position = Vector2.MoveTowards(transform.position, player.position, -speed * Time.deltaTime);
            }
    }
    

        else if (Vector3.Distance(transform.position, moveSpots[randomSpot].position) < 0.2f)
        {
            if (waitTime <= 0)
            {
                randomSpot = Random.Range(0, moveSpots.Length);
                waitTime = startWaitTime;
            }
            else
            {
                waitTime -= Time.deltaTime;
            }
        }

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