Игрок больше не движется влево - PullRequest
0 голосов
/ 17 апреля 2019

Хотелось перевернуть FirePoint, и теперь игрок больше не двигается влево.

void Update()
{

    float h = Input.GetAxis("Horizontal");

    transform.Translate(Vector3.right * h * movSpeed * Time.deltaTime);

    if (h > 0 && !facingRight)
    {
        Flip();
    }
    else if (h < 0 && facingRight)
    {
        Flip();
    }

}

private void Flip()
{
    facingRight = !facingRight;
    transform.Rotate(0f, 180f, 0f);
}

1 Ответ

0 голосов
/ 17 апреля 2019

Transform.Translate перемещается в координатном пространстве относительно объекта , если вы не используете его второй параметр.Поскольку вы переворачиваете его, вы всегда движетесь в одном и том же направлении.Связанная документация гласит:

Если relativeTo опущен или установлен на Space.Self, движение применяется относительно локальных осей преобразования.

Вы хотитеиспользуйте Space.World в качестве второго аргумента (по умолчанию Space.Self):

transform.Translate(Vector3.right * h * movSpeed * Time.deltaTime, Space.World);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...