【问题标题】:Unity - Quaternions maximum value is always '1.0' and minimum value is always '-1.0'Unity - 四元数最大值始终为“1.0”,最小值始终为“-1.0”
【发布时间】:2018-10-16 08:08:59
【问题描述】:

我正在制作一款你以第一人称视角玩的游戏。我想通过添加头部摆动效果让它变得有点现实。这已经包含在我正在使用的标准资产包“角色”中,但我也在尝试调整玩家头部的旋转,使其在行走/跑步时左右倾斜。

由于某种原因,当我将四元数应用于相机的局部旋转时,z 值介于 -1.0 和 1.0 之间,但这不是我想要的。

我尝试将 z 值乘以 360,但它仍然给我 '1' 作为最大值。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 除非您知道Quaternions 是如何由内而外地工作的,否则您不应该干预各个值,因为它们无论如何都不会直接存储角度值。您可能想查看transform.eulerAngles,它允许您像编辑器中那样使用 3 个角度 XYZ。
  • 我也试过这个,但是我如何将它应用到局部旋转,因为这需要四元数而不是 Vector3
  • 预期为四元数分量的最大/最小值 (-1, 1)。它保持旋转弧度的大小/2。单独改变四元数的组件是不正确的旋转对象的方法。

标签: c# unity3d scripting camera quaternions


【解决方案1】:

你想使用 Quaternion.Euler。

示例;

transform.rotation = Quaternion.Euler(new Vector3(0, 0, 360));

希望这会有所帮助!

【讨论】:

  • transform.rotation.eulerAngles = new Vector3(0, 0, 360)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多