2

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

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

    craft.ChangeHeading(temp);
  }

我访问的每个站点都建议使用Euler Angles,但据我所见,它们仅在按键时更新。

我需要一种方法:

  • 每当船转弯时更新航向(即使与其他物体发生碰撞)
  • 或将伪造的值从transform.rotation代码转换为度数
4

1 回答 1

3

代码有两个问题:

  1. 代码正在检查 z 轴,而不是 y
  2. 需要测试不断更新的欧拉角

这是正确的代码:

void getHdg()
{
    float temp = this.transform.eulerAngles.y;
    craft.ChangeHeading(temp);
}
于 2013-08-05T15:06:05.083 回答