如果难以理解,请提前致意,如果需要,我会绘制图表。
我使用Unity3D开发游戏并且在播放器的转换方面遇到了麻烦。游戏是第一个人,3D,并且有重力会改变的点,允许玩家沿着墙走 - 这一切都已经开始运行。
当玩家的重力使其在墙上行走时,当我旋转角色以环顾其变形时表现得很奇怪。它可以旋转整整一圈,并且在玩游戏时角色没有明显的问题。
如果我在播放模式中查看检查员,请说我不断向右转,会发生以下情况:
序列将类似于:0, 1, 2 ... 88, 89, 90, 89, 88 ...1, 0, 359, ...271, 270, 271 ... 359, 0, 1 ...89, 90, 89 ...
等。
当我在场景视图中观察变换时,它会像车窗上的雨刮器一样来回移动,但是我的角色本身只是朝一个方向转动。当我在地面时它尽可能完整的圆圈,即使价值仍然是" ping-ponging"。
是什么导致这种情况发生?当玩家角色在地板上时,它不会发生,只有当它在墙上时才会发生。我需要知道的原因是因为游戏中还有其他东西依赖于模仿玩家的轮换,这个问题给了我一些我不想要的行为。
非常感谢任何帮助,我有一段时间遇到麻烦了!
答案 0 :(得分:0)
你不应该依赖Unity中的角度值,它使用四元数进行旋转:
https://unity3d.com/ru/learn/tutorials/modules/intermediate/scripting/quaternions http://docs.unity3d.com/ScriptReference/Quaternion.html
奇怪的行为来自这样一个事实,即角度值的多个组合代表相同的旋转。