我想模拟一个射弹运动。我使用以下代码
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);
}
我的射弹是一个刚体,我希望它的定位就像真正的抛射物一样,当我的射弹即将与地面相撞时,它应该面向地面而不是发射器的旋转。它应该根据速度改变它的旋转。我不知道怎么做?
答案 0 :(得分:1)
正如您在评论中所说,只需将transform.LookAt(transform.position + rigidbody.velocity);
包含在射弹控制器更新中。另外,请确保标记“锁定旋转”'在刚体设置中,因为否则物理系统会尝试自己旋转你的刚体,这可能会导致抖动,不切实际的行为。
答案 1 :(得分:0)
现在正在工作:)这行代码transform.LookAt(transform.position + rigidbody.velocity);解决了我的问题