我正在使用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);
}
但这只是“推”车轮,没有旋转,如果车在空中,你仍然可以移动它......我需要旋转车轮,而不是推动车轮。有人可以帮忙吗?
答案 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);}
}