Unity 5 . Physics Car

Unity 5 . Physics Car

Движение автомобиля и настройка физики в Unity.

В этом уроке я хочу рассказать вам как создать физику и движение автомобиля. Для этого нам потребуется модель самого авто/машина (без колес) и сами колеса, так же нам нужно скачать бесплатный ассет для unity, Car System, из которого мы возьмем несколько скриптов для нашего авто.

И так, начнем! Я использовал модель ЗИЛа, сделав в blender его колеса отдельными объектами.

zilmodel

Если вам потребуется модель можете скачать здесь.

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

Перейдем в Asset Store и импортируем в наш проект CarSystem.

До того как начать настраивать физику автомобиля, необходимо подготовить нашу модель. Добавим компонент Rigibody к нашей модели.

Создадим пустой объект на сцене и сделаем его дочерним нашей модели зила.

emptyzil

К этому объекту создадим еще 4 пустышки и переименуем их.

whellempty

К каждому из этих объектов добавим компонент WheelCollider и настроим их таким образом:

whelkolesso2

Расположим их так, чтобы они находились примерно в каждом колесе (важно назначить каждому компоненту имя, чтобы не перепутать их в дальнейшем местами).

wheelvkoleso

Вернемся на нашу модель и добавим скрипт Car из ассета CarSystem.

В скрипте Car откроем вкладку Wheel и добавим 4 колеса, в каждом колесе в строках whell collider укажем наши пустышки с компонентами wheel collider, в строке wheel transform укажем наши колеса. (Будьте внимательны, каждый коллайдер должен совпадать с расположением колеса, т.е. если вы указали коллайдер переднего правого колеса, то и модель колеса должна быть указана передняя правая, иначе ничего не получится). Советую для начала указать первые два колеса передние, для них поставить галочки ismotor и isfront.  В строке  Engine torque  указать значение 0.22. Для задних колес, тот же параметр будет равен 0.28 и так же стоять галочки только на ismotor.

Передние колеса

frontwheel

Задние колеса

backwhell

Укажем массу зила в компоненте rigibody и в скрипте car равную 4300. Вкладку Engine настроем вот так:

massengine

Во вкладке Transmission в строке defferintial rotation укажите 2.67, в строке front bake torque 4500 и в строке Back Brake Torque 4000

transsm

далее в строках max speed укажите 90 и hp 100

maxspeed

Нажмите на график Gear Ration_Curve и создайте примерно такой график (чтоб создать точку нажмите правой кнопкой мыши на график  и выберете Add Key)

graph

В этом скрипте больше ничего настраивать не нужно, следующие скрипты которые нужно добавить на авто это: car control, wings, steering, tcs system, anti roll bar 2 шт и user input.

В одном скрипте anti roll bar укажите компоненты с wheel collider передние, а в другом задние

antirollbar

Теперь создадим еще одну пустышку к нашему авто и  добавим к ней box collider, настроем его примерно так:

collider

Теперь можно проверить игру, ЗИЛ двигается, но средние колеса не крутятся, для этого создадим скрипт Transformwhel, который будет повторять за задними колесами.

using UnityEngine;

using System.Collections;

public class Transformwhell : MonoBehaviour {


public Transform whell2;

void Update () {

this.transform.rotation = whell2.transform.rotation;

}

}

Этот скрипт поместим на средние колеса и укажем в строке whell2 одно из задних колес.

sredniewheel

Снова проверяем, если все компоненты настроено правильно, то все получится и наш авто поедет.

physicscar1

Скачать проект можно здесь.

На Главную


Оставить Комментарий