我已经创建了3D赛车,赛车会左右移动,但不会随着真实赛车的旋转而旋转。下面是我的脚本:
public class movement : MonoBehaviour {
Rigidbody rb;
public float forwardforce = 600f;
public float sidwayforce;
float left_right;
public float thrust;
public float speed;
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate () {
rb.AddForce(0, 0, forwardforce *Time.deltaTime);
Controll ();
left_right = Input.GetAxis("Horizontal");
// rb.AddForce(sidwayforce* left_right * Time.deltaTime, 0, 0,ForceMode.VelocityChange);
// rb.AddForce( sidwayforce*left_right * Time.deltaTime, 0, 0, ForceMode.Acceleration);
//rb.velocity = new Vector3(sidwayforce*left_right * Time.deltaTime,0,0);
}
这是左右移动的代码,但我想创建汽车旋转
void Controll (){
if (Input.GetAxis ("Horizontal") > 0) {
rb.AddForce (20f, 0, 0);
} else {
if (Input.GetAxis ("Horizontal") <0) {
rb.AddForce (-20f, 0, 0);
}
}
}
}
如果您想进行逼真的汽车运动,我建议您使用车轮碰撞器。车轮对撞机可用于控制加速/减速以及转弯,因此它们将产生更逼真的汽车运动(只要正确设置车轮属性,它们可能会有点挑剔)。
如果您遵循这些链接,它们将更详细地说明车轮对撞机的工作原理以及如何对其进行编程