【问题标题】:Projectile Rotation in Unity3DUnity3D中的弹丸旋转
【发布时间】:2013-04-22 13:52:32
【问题描述】:

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

 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);解决了我的问题
  • 您应该使用上述信息回答您自己的问题,而不是发表评论。这样做可能会帮助其他人。

标签: 3d unity3d game-physics projectile


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多