[]关于Quaternion.rotationLookAt的问题

刚用laya不久,在导入一个unity模型做旋转的时候,试图用Quaternion.rotationLookAt生成一个Quaternion直接赋值给Sprite3D的rotation。发现结果怎么都不对,跟到Matrix3x3.lookAt里看实现,生成三个向量之后赋值给矩阵处貌似有问题,该为如图所示(转置)之后修复。
laya_quaternion_lookat.png

另外,Quaternion.rotationLookAt生成的四元数直接赋值的话旋转是反的,要把传入的向量反一下才行,看了Transform3D的lookAt实现,也是生成之后再invert才赋值给rotation的,不知这是为什么?是unity模型导出是左手坐标系的缘故么?
 
已邀请:

Aar0n

赞同来自: brooshe chaos

lookat是针对摄像机的方法  而摄像机的视图矩阵就是摄像机世界矩阵的逆矩阵

Aar0n

赞同来自:

这个就是因为左右手坐标系不同,我们是右手,u3d是左手。

brooshe

赞同来自:

不过讲真Quaternion.rotationLookAt这个函数名误导性太强。。

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作