2013-04-22 128 views
2

我想模拟抛射体运动。我用下面的代码Unity3D中的子弹旋转

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

现在它正在工作:)这行代码transform.LookAt(transform.position + rigidbody.velocity);解决了我的问题 – 2013-04-22 13:59:12

+5

你应该用上面的信息回答你自己的问题,而不是评论。它可以通过这样做来帮助其他人。 – Joetjah 2013-04-22 14:02:09

回答

0

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

1

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