@Linforce
14 лет, интересуюсь техникой, программами и играми

Как выбрать случайную сторону движения врага один раз по x в юнити2д?

Нужно ,чтобы враг один раз выбирал случайное значение движения (направо или на лево), но при использовании Random.Range в FixedUpdate он начинает постоянно выбирать направление( что логично ), но как мне сделать определение стороны один раз?
private void FixedUpdate()
    {
        if (EnemyFindaPlayer == false)
        {
            float direction = player.transform.position.x - transform.position.x;

            if (Mathf.Abs(direction) < 20)
            {
                Vector3 pos = transform.position;
                pos.x += Mathf.Sign(direction) * speedMoveClassical * Time.deltaTime;
                transform.position = pos;
            }




            if (speedMoveClassical == 0)
            {
                anim.SetBool("isRunning", false);
            }
            else
            {
                anim.SetBool("isRunning", true);
            }

            if (facingRight == false && direction > 0)
            {
                Flip();
            }
            else if (facingRight == true && direction < 0)
            {
                Flip();
            }
        }
        else
        {

            Invoke("FreeMove" , MomementMoveDelay);


            if (speedMoveClassical == 0)
            {
                anim.SetBool("isRunning", false);
            }
            else
            {
                anim.SetBool("isRunning", true);
            }

            if (facingRight == false && speedMoveClassical > 0)
            {
                Flip();
            }
            else if (facingRight == true && speedMoveClassical < 0)
            {
                Flip();
            }


        }
    }

   private void FreeMove()
    {
        rb.velocity = new Vector2( Random.Range(-speedMoveClassical, speedMoveClassical), 0);

    }
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы