U2L5-3——四元数常用方法
U2L5-3——四元数常用方法
本章代码关键字
1 | Quaternion.identity //单位四元数,可以用于初始化方向 |
单位四元数
用于对象角度初始化
单位四元数表示没有旋转量时(角位移)
当角度为0或者360度时
对于给定轴都会得到单位四元数
和 都是四元数,表示没有旋转量
1 | print(Quaternion.identity); |
四元数插值运算
用于平滑旋转
前面讲的插值运算、向量插值计算
四元数也有Lerp
和Slerp
两种方式
四元数里Lerp
和Slerp
只有细微的差别,算法不同
但是在这里更推荐使用Slerp
,效果更好
无限接近,先快后慢
1 | A.transform.rotation = Quaternion.Slerp(A.transform.rotation, target.rotation, Time.deltaTime); |
匀速接近
1 | time += Time.deltaTime; |
向量指向转四元数
用于让对象朝向某方向
将一个Vector3向量,转换为四元数,可以用于改变面朝向
举例:
当人物面朝向想要改变时,只需要把目标面朝向传入该函数,
便可以得到目标四元数角度信息,
之后将人物四元数角度信息改为得到的信息即可达到转向。
1 | Quaternion q = Quaternion.LookRotation(lookB.position - lookA.position); //A指向B的向量 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!