Управление автомобилем

Программирование на Юнити.

Управление автомобилем

Сообщение ba3uk 25 сен 2017, 11:36

Здравствуйте, многоуважаемые собратья)
Хочу сделать простое управление автомобилем что бы при длительном повороте заднюю часть начинало заносить ( скажем как в Asphalt 8) но , реализация должна быть сделана через rigidbody без wheel сoll. И тут я предпринял несколько попыток это сделать:
1)
Синтаксис:
Используется csharp
         
        //MoveCar
        Vector3 movement = transform.forward * Time.deltaTime * speed * 1f;
        rb.MovePosition(movement + transform.position);
        rb.isKinematic = true;
       

        // TurnCar
        float angel = Input.GetAxisRaw("Horizontal") * turnSpeed * Time.deltaTime;
        Quaternion rot = Quaternion.Euler(0, angel, 0);
        rb.MoveRotation(rot * transform.rotation);
       

И все бы ничего, но так и не придумал как добавить тот самый занос.

2)
Синтаксис:
Используется csharp
if (CheekSpeed(rb.velocity , MaxSpeed))
        {
            rb.AddRelativeForce(speed  * Vector3.forward);
        }
        float angel = Input.GetAxisRaw("Horizontal") * turnSpeed ;
        rb.AddRelativeTorque(Vector3.up * angel , ForceMode.Impulse);
 

Тут у меня получилось сделать имитацию того самого заноса , но тут перестарался и автомобиль почти не едет прямо.

Подскажите куда копать, может у кого есть подобные решения)
PS. - Простите за такой код, только учусь
ba3uk
UNец
 
Сообщения: 6
Зарегистрирован: 25 сен 2017, 10:51

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot], Google [Bot] и гости: 9