Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3D轴上对象的相对旋转_Unity3d_Rotation_Quaternions_Euler Angles - Fatal编程技术网

Unity3D轴上对象的相对旋转

Unity3D轴上对象的相对旋转,unity3d,rotation,quaternions,euler-angles,Unity3d,Rotation,Quaternions,Euler Angles,在该项目中,我使用IMU传感器跟踪真实玩家的手,并将变换值应用到Unity内部的3D手上 当IMU设置Y轴相对于地球磁北的方向时,在游戏中,手在特定方向上初始化 我想要的是计算IMU的给定Y值和3D手的原始Y旋转的偏移量,这样我可以将该值减去3D模型的Y旋转(看起来玩家的初始Y旋转与3D手的相同)。代码是:transform.Rotate(Vector3.up,offset,Space.World) IMU发送欧拉角(做得很好,因为我无法获得万向节锁) 据我所知,我需要找出3D手的初始旋转和IM

在该项目中,我使用IMU传感器跟踪真实玩家的手,并将变换值应用到Unity内部的3D手上

当IMU设置Y轴相对于地球磁北的方向时,在游戏中,手在特定方向上初始化

我想要的是计算IMU的给定Y值和3D手的原始Y旋转的偏移量,这样我可以将该值减去3D模型的Y旋转(看起来玩家的初始Y旋转与3D手的相同)。代码是:transform.Rotate(Vector3.up,offset,Space.World)

IMU发送欧拉角(做得很好,因为我无法获得万向节锁)

据我所知,我需要找出3D手的初始旋转和IMU在XZ平面(或通过Y轴)上给定的初始旋转之间的角度差

如何计算偏移量?

您可以使用来计算偏移量,例如:

var offset = Quaternion.FromToRotation(Vector3.up, imuUp);
transform.rotation *= offset;

谢谢你考虑我的问题。你说的imuUp是什么意思?