Unity3D中的弹丸旋转
我想模拟一个抛射体的运动。我使用以下代码Unity3D中的弹丸旋转,3d,unity3d,game-physics,projectile,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.TransformDirect
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);
}
我的射弹是一个刚体,我希望它像真实的射弹一样设置方向,也就是说,当我的射弹即将与地面碰撞时,它应该面向地面,而不是它的发射器的旋转方向。它应该根据其速度改变其旋转。我不知道怎么做 正如您在评论中所说,只需包含
transform.LookAt(transform.position+rigidbody.velocity)将>编码到射弹控制器更新中。还要确保在刚体设置中标记“锁定旋转”,否则物理系统将尝试自己旋转刚体,这可能会导致抖动和不现实的行为。现在它正在工作:)这行代码转换。查看(transform.position+rigidbody.velocity);解决了我的问题现在它正在工作:)这行代码转换。看(transform.position+rigidbody.velocity);解决了我的问题你应该用以上信息回答你自己的问题,而不是评论。这样做可以帮助他人。