【unity笔记一】四元数函数 (LookRotation ,AngleAxis与FromToRotation)

  • Post author:
  • Post category:其他


[笔记自用]


首先,测试这两个函数,先解决

vector.up




transform.up


概念的不同,我之前一直混淆。



通过上述的两个图,得到

Vector.up

为世界坐标系


y


轴单位坐标,而


transform.up





local


坐标系的


y


轴单位坐标。

1.FromToRotation


然后开始介绍

FromToRotation

。官方


API


定义是:

Description




Creates a rotation which rotates from fromDirection to toDirection.




fromDirection




toDirection


创建一个旋转。


试着跑了一个官方的简单案例,对象为一个重置后的

cube

可以发现cube

得到一个沿


x





90


度的旋转。变换前


cube





local


坐标系


y


轴与世界坐标系


y


轴重合,变换后则指向世界坐标系


z


轴。

2. AngleAxis


官方

API

定义是:

Description




Creates a rotation which rotates angle degrees around axis




axis

轴旋转


angle


,创建一个旋转


官方案例,对象依旧为重置

cube



cube得到沿世界坐标系y轴30度的旋转。


3. LookRotation

先上官方定义:

Description




Creates a rotation with the specified forward and upwards directions.


创建一个旋转,沿着

forward(z轴)并且头部沿着upwards(y轴)的约束注视。也就是建立一个旋转,使z轴朝向view y轴朝向up。

这个读起来就很绕,不多说,先官方例子。


如图,先把

vec3

设置为


Vector3.up





target


为白色


Capsule


,运行后物体


Z


轴指向


target


,只有


X


轴和


Y


轴发生旋转。


PS





LookRotation


函数返回结果只与


api


中两个参数有关,


static Function




当将

vec3

改变为(


1





1





1


)时,


z


轴开始旋转(如上图),


xy


轴旋转值保持不变。


Api


中第二个参数约束


z


轴旋转。


Ps





upwards


:向上向量


,


注意


,


此向量不需要是精确的


y


轴的朝向


(


即不需要与


forward


垂直


),


但是


,


此向量应该处于


z


轴、


y


轴平面上。


So


,由第一个参数得到


Z


轴,然后第二个参数得到


z


轴和


y


轴的平面,然后根据左手坐标系分别求出


x


轴和


y


轴。



版权声明:本文为ZZW823732782原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。