我有一个统一的3d对象,我想要与设备(当前为android)的确切方向。
我尝试使用:
transform.rotation = Input.gyro.attitude;
了解陀螺仪左手的右手反手之后:
Quaternion q = Input.gyro.attitude;
transform.rotation = new Quaternion (q.x, q.y, -q.z, -q.w);
但是它们都给出了错误的结果,当我从右向左旋转设备时,对象绕轴旋转。
当我尝试这样做时:
Quaternion q = Input.gyro.attitude;
q = new Quaternion (q.x, q.y, -q.z, -q.w);
transform.rotation = q * Quaternion.Euler (-90f, 0f, 0f)
该对象面向西而不是朝西
我应该对轮换使用哪种操作?谢谢。
答案 0 :(得分:0)
尽管我最初的问题是如何将对象附加到陀螺仪上,但是我还是设法解决了该问题。
我发现的解决方案是将相机本身安装到陀螺仪上:
Quaternion q = gyro.attitude;
q = new Quaternion (q.x, q.y, -q.z, -q.w);
Camera.main.transform.rotation = q;
Camera.main.transform.Rotate(90f, 0f, 0f, Space.World);
在那之后,我将该物体作为照相机的子代,从而解决了问题。
具体地说,这在android上有效,未在ios上检查过。