Unity-四元数

 1、欧拉角

 

 

 

 在Unity中完成绕x轴的四元数声明。

 

 上述方法不是经常用,下面方法为四元数常用方法:

 

 

此时的Vector3.forward不是世界坐标下的面朝向,是物体坐标系下自己的面朝向。

 我们不能直接修改rotation里的欧拉角的值,我们用Vector3存起来,改变Vector3。

 用欧拉角转换成四元数的知识。转换-赋值

 此时Rotation x = 90。如果是欧拉角的话 为死锁状态。

运行后发现没有绕y轴转,而是绕Z轴转。

用 欧拉角旋转有万向节死锁。

  

四元数

1、单位四元数

 

 在Unity中单位四元数的编写:

 创建一个cube,rotation的xyz不为0.

 在脚本中将它的rotation变为单位四元数。

 

 角度为0,0,0。

作用:初始化物体时,可以将物体的四元数设置为单位四元数。

 2、插值运算

 

将A、B转动到和Cube一样。

 

 先快后慢。

匀速和Vector3同理,不会就回去复习以下。

3、向量指向四元数(重要)

 

 我们想让A指向B,除了LookAt函数外,我们可以用上方的LookRotation函数。我们需要得到AB向量,将AB向量传入LookRotation。将返回的四元数赋予A,就可以使A转向,面朝B。

 

 

 A朝向了B。

 四元数计算(重要)

 1、四元数相乘

 

 绕y轴,转20°。

如若还要绕自己的y轴转20°,那么可以再乘一次。

 2、四元数乘向量

 

四元数乘以向量,四元数一定是在前面的。

 使用意义:发射不同方向的子弹,面朝向乘以四元数得到不同方向。

猜你喜欢

转载自blog.csdn.net/qq_42705793/article/details/127621992