2013-04-06 2 views
0

Я новичок в Unity. Я хочу, чтобы эти колеса (цилиндры) в этом автомобиле обернутся, если я нажму кнопку «вверх» на моей клавиатуре. Это код, который я написал:Влияние колес на движение транспортного средства

var forwardSpeed: float = 3; 

function Start() { 

} 

function Update() { 
    var forwardMoveAmount = Input.GetAxis("Vertical")*forwardSpeed; 
    transform.Rotate(0, forwardMoveAmount, 0); 
} 

ОК. Колеса поворачиваются, но моя машина все еще находится на том же месте. Что мне делать, чтобы переместить этот автомобиль? enter image description here

PS: Вы можете объяснить мне, почему этот цилиндр вращается правильно, когда я использую ось Y? Это должно быть z.

ответ

1

Вы применяете скаляр расстояния к функции поворота и не переводите (перемещая) объект.

transform.Rotate будет вращать объект.

transform.Translate будет перемещать объект.

Выберите объект на своем столе. Если вы повернете его на 90 градусов два раза, он будет повернут на 180 градусов, но все равно будет в одном месте. Теперь представьте, что каждый раз, когда вы вращаете этот объект, вы перемещаете его в направлении, в котором он находится на пару дюймов. После 4 циклов объект завершит полную схему на 360 градусов.

Чтобы представить это в коде:

var forwardSpeed: float = 3; // Tweak me 
var turnAngle: float = 1; // Tweak me 

function Start() { 

} 

function Update() { 
    // Rotate first 
    transform.Rotate(0, Vector3.right * turnAngle, 0); 
    // Move forward along the rotated axis 
    transform.Translate(0, Vector3.forward * forwardSpeed, 0); 
} 
+0

, но я думал, что если я поверну колеса, физический движок позволит мне переместить этот автомобиль. – Piotrek

+1

Выберите объект на вашем столе. Если вы повернете его на 90 градусов два раза, он будет повернут на 180 градусов, но все равно будет в одном месте. Теперь представьте, что каждый раз, когда вы вращаете этот объект, вы перемещаете его в направлении, в котором он находится на пару дюймов. После 4 циклов объект завершит полную схему на 360 градусов. – rrowland

+0

, так что я должен сделать, чтобы сделать мою машину более реалистичной? трансформирует мою машину на самолете, но как насчет местности? что, если я хочу кататься на вершине горы? – Piotrek

0

Вам также необходимо будет явно перемещать автомобиль в то же время, используя предположительно transform.position, transform.Translate() или что-то подобное на родительском объекте автомобиля.

+0

, но я подумал, что если вращать колеса, физический движок позволит мне переместить эту машину. – Piotrek