Unity5学习心得-旋转

来源:互联网 发布:淘宝客服工作好不好干 编辑:程序博客网 时间:2024/06/07 03:32

Unity5学习心得-旋转

3D游戏中的旋转通常是通过两种方式,四元数或者欧拉角。这两种方式每一种都有优势和劣势,unity内部是使用四元数,但是为了编辑器方便,所以显示在编辑器上的是以欧拉角的方式显示。

欧拉角 Euler Angles

欧拉角看上去很容易理解,就是以XYZ分开的方式进行展示,当一个物体使用欧拉角旋转的时候,每个旋转角度都需要按照其轴向进行旋转。
优点:
1. 看上去很清晰,分成XYZ三个轴的角度很容易理解
2. 每个角度都可以通过旋转超过180度的方式改变朝向
缺点:
1. 受限于Gimbal lock 万向节死锁,当第一个或者第二个轴与第三个轴重合的时候,第三个轴的转动可以通过重合的那个轴来代替。举个例子(30,90,-40)的转动相当于(30-(-40),90,0)的转动,因此不能实现球面平滑插值,youku有个视频解释万向节死锁。

四元数 Quaternions

四元数也是用于物体的旋转和朝向的,其内部是通过四个参数来进行操作,xyzw,这些参数与角度等信息无关,它们的具体含义可以参照wiki。
优点:
1. 不受到万向节死锁的限制
缺点:
1. 无法表示一个超过绕某一轴向超过180度的旋转
2. 四元数对应的参数比较难理解
unity内部使用四元数,展现在编辑器上为欧拉角,当开发者改变欧拉角的时候,内部会将其转为四元数进行计算。假如开发者输入365度,由于四元数不支持365度,那么当点击play的时候,会显示5度


0 0
原创粉丝点击