Unity3D中的弹丸旋转

时间:2013-04-22 13:52:33

标签: 3d unity3d game-physics projectile

我想模拟一个射弹运动。我使用以下代码

 if (Input.GetButtonDown("Fire1")) {
        Rigidbody clone;
        clone = Instantiate(projectile, transform.position+ new Vector3(0f,0f,2f), transform.rotation) as Rigidbody;
        clone.velocity = transform.TransformDirection(Vector3.forward * Speed);
    }

我的射弹是一个刚体,我希望它的定位就像真正的抛射物一样,当我的射弹即将与地面相撞时,它应该面向地面而不是发射器的旋转。它应该根据速度改变它的旋转。我不知道怎么做?

2 个答案:

答案 0 :(得分:1)

正如您在评论中所说,只需将transform.LookAt(transform.position + rigidbody.velocity);包含在射弹控制器更新中。另外,请确保标记“锁定旋转”'在刚体设置中,因为否则物理系统会尝试自己旋转你的刚体,这可能会导致抖动,不切实际的行为。

答案 1 :(得分:0)

现在正在工作:)这行代码transform.LookAt(transform.position + rigidbody.velocity);解决了我的问题