Вращение мяча вперед с помощью AddForce в зависимости от направления дорожки - PullRequest
0 голосов
/ 25 января 2019

У меня есть шар, который движется вперед один, игроку нужно только повернуть налево или направо, чтобы получить драгоценные камни и не упасть с дороги.

Проблема в том, что я использую функцию AddForce для продвижения мяча вперед, но я не знаю, как адаптировать направление в зависимости от направления дорожки. Если, например, есть левый поворот, я хочу, чтобы мой мяч сам поворачивался, чтобы выполнить повторную адаптацию к дорожке, оставляя камеру позади.

void FixedUpdate()
{
    float moveHorizontal = Input.GetAxis("Horizontal") * sideSpeed * rb.velocity.magnitude / acceleration;

    if (rb.velocity.magnitude <= speedLimit)
    {
        rb.AddForce(0.0f, 0.0f, acceleration); // add vertical force
    }
    rb.AddForce(moveHorizontal, 0.0f, 0.0f); // add horizontal force
}

Скриншот

1 Ответ

0 голосов
/ 26 января 2019

Вы можете попробовать использовать Rigidbody.AddRelativeForce () , чтобы добавить силу в относительном направлении мяча вперед, поэтому независимо от того, какое вращение имеет шар, он всегда движется вперед.Попробуйте что-то вроде этого:

void FixedUpdate()
{
    float moveHorizontal = Input.GetAxis("Horizontal") * sideSpeed * rb.velocity.magnitude / acceleration;

    if (rb.velocity.magnitude <= speedLimit)
    {
        rb.AddRelativeForce(0.0f, 0.0f, acceleration); // Add vertical force
    }

    rb.AddRelativeForce(moveHorizontal, 0.0f, 0.0f); // Add relative horizontal force
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...