Unity中四元数常用的方法

发布时间:2024年01月18日

单位四元数

 #region 单位四元数
 print(Quaternion.identity);
 testObj.rotation = Quaternion.identity;
 //初始化对象时可能会用来赋值
 Instantiate(testObj,Vector3.zero,Quaternion.identity);
 #endregion

插值运算

#region 插值运算
//四元数中也提供了如同Vector3的插值运算
//Lerp和Slerp

//在四元数中Lerp和Slerp只有一些细微的差别
//由于算法不同
//Slerp的效果会好一些
//Lerp的效果相比Slerp的效果更快但是如果旋转范围较大,效果会较差
//所以建议使用Slerp做插值运算
#endregion
//先快后慢无限接近
A.transform.rotation = Quaternion.Slerp(A.rotation, target.rotation, Time.deltaTime);

//匀速变化
time += Time.deltaTime;
B.rotation = Quaternion.Slerp(start, target.rotation, time);

向量指向四元数

 Quaternion q = Quaternion.LookRotation(lookB.position - lookA.position);
 lookA.rotation = q;

文章来源:https://blog.csdn.net/lqd201314/article/details/135677544
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。