Unity2D - 旋转左轮移动汽车

时间:2014-01-01 10:38:10

标签: rotation unity3d 2d sprite

我正在使用Unity2D进行简单的汽车/自行车物理游戏。 我想当我按下右箭头或左箭头时,车轮精灵旋转,所以汽车正在移动。

这是我的代码:

float move=Input.GetAxis("Horizontal");
        if (Input.GetKey(KeyCode.RightArrow))
        {

            rigidbody2D.velocity = new Vector2(move*10,rigidbody2D.velocity.y);


        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {


            rigidbody2D.velocity = new Vector2(move * 10, rigidbody2D.velocity.y);

        }

但这只是“推”车轮,没有旋转,如果车在空中,你仍然可以移动它......我需要旋转车轮,而不是推动车轮。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

速度只是朝着一个方向移动,就像你在脚本中看到的一样。另一方面,angularVelocity是旋转。尝试使用rigidbody2D.angularVelocity,看看会发生什么。

答案 1 :(得分:0)

这个简单的代码将旋转2d对象。旋转的速度取决于所选物体的速度有多快。

#pragma strict

var power : float; //the engine power applied to the wheel
var car : GameObject; //the object whose velocity you are calculating

function Start () {

}

function Update () {

 var wheelpower = car.rigidbody2D.velocity.x * power; //velocity of "car" * engine power

if(Input.GetKey(KeyCode.D)){
    transform.Rotate(0, 0, -wheelpower);}
if(Input.GetKey(KeyCode.A)){
    transform.Rotate(0, 0, wheelpower);}

}