在Unity3D中模拟真实汽车旋转

问题描述 投票:0回答:1

我已经创建了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);
            }
        }
    }
}
c# unity3d
1个回答
2
投票

如果您想进行逼真的汽车运动,我建议您使用车轮碰撞器。车轮对撞机可用于控制加速/减速以及转弯,因此它们将产生更逼真的汽车运动(只要正确设置车轮属性,它们可能会有点挑剔)。

如果您遵循这些链接,它们将更详细地说明车轮对撞机的工作原理以及如何对其进行编程

https://docs.unity3d.com/Manual/WheelColliderTutorial.html

https://docs.unity3d.com/Manual/class-WheelCollider.html

© www.soinside.com 2019 - 2024. All rights reserved.