2

我想模拟弹丸运动。我使用以下代码

 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);
    }

我的弹丸是一个刚体,我希望它像真正的弹丸一样设置它的方向,这意味着当我的弹丸即将与地面碰撞时,它应该面向地面而不是其发射器的旋转。它应该根据它的速度改变它的旋转。我不知道该怎么做?

4

2 回答 2

1

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

于 2013-04-23T08:01:13.527 回答
0

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

于 2014-04-04T15:22:01.067 回答