【unity2D】API-学习记录11-关于旋转:欧拉角与四元数
目标
了解Unity中有关旋转的知识。
前言
UnityAPI中文文档里,关于旋转的解释,非常详细清楚。这里把其中的重点总结出来。
Unity中如何旋转
在Unity中,一般以两种方式实现旋转:
- 欧拉角(Euler Angle)
- 四元数(Quaternion)
欧拉角Euler Angle
欧拉角由按顺序应用的 X、Y 和 Z 三个角度值来表示,能被直观地读出来,正如下图中Transform中的Rotation。
欧拉角又分为静态和动态:
- 静态:绕世界坐标系三个轴的旋转,物体旋转过程中坐标轴保持静止。
- 动态:绕物体坐标系三个轴的旋转,物体旋转过程中坐标轴随着物体做相同的转动。
虽然欧拉角非常直观方便,但动态欧拉角存在万向节死锁的局限。
简单来讲,就是物体依次沿三个轴旋转时(尤其是前两次旋转中有转动90°时),则可能使“物体坐标系的某个轴”和“世界坐标系的一个非对应轴”相重合,即丢失某个轴向的自由度,使旋转偏离预期效果。
由于2D游戏一般只绕Z轴旋转,就不过多展开万向节死锁问题,具体请参考关于万向节死锁(Gimbal Lock)(续)
为了避免万向节死锁,四元数出场。
四元数Quaternion
四元数可用于表示游戏对象的方向或旋转。此表示方式在内部由四个数字组成(在 Unity 中称为 x、y、z 和 w),但是这些数字不代表角度或轴,通常不需要直接访问它们。除非特别想深入研究四元数的数学原理,否则只需要知道四元数代表 3D 空间中的旋转即可,通常不需要知道或修改 x、y 和 z 属性。
四元数涉及某些数学知识,直观上难以理解。但 Unity 在内部将所有游戏对象的旋转存储为四元数,因为这种表示方式的好处超过了局限性。
补充
在Unity里,有个专门做旋转的类叫Quaternion(四元数)。具体怎么用,之后再学。
参考资料
Unity 中的旋转和方向
关于万向节死锁(Gimbal Lock)(续)
__EOF__

本文作者:OtusScops
本文链接:https://www.cnblogs.com/OtusScops/p/14756851.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/OtusScops/p/14756851.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
API
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!