在Unity3D C#中获得准确的旋转角度

时间:2013-08-05 14:24:26

标签: c# unity3d

所以我试图在Unity中制作一个模拟船只运动的程序。这包括当船与某物碰撞时会发生什么。当船只移动得很好时,我返回的航向值不是弧度或度数。这是我用来确定标题的代码:

  void getHdg()
  {
    float temp = this.transform.rotation.z;

    craft.ChangeHeading(temp);
  }

我去过的每个网站都建议使用 Euler Angles ,但从我看到的情况来看,它们只是在按键上更新。

我需要一种方法:

  • 船只转动时更新航向(即使与其他物体碰撞)
  • 或将伪造的vaules从 transform.rotation 代码转换为度

1 个答案:

答案 0 :(得分:3)

代码有两个问题:

  1. 代码检查z轴,而不是y
  2. 需要测试不断更新的 Euler Angles
  3. 这是正确的代码:

    void getHdg()
    {
        float temp = this.transform.eulerAngles.y;
        craft.ChangeHeading(temp);
    }