我有一个传感器。此传感器返回当前方向的四元数。 我添加了重置方向代码,它完美运行:
void KeyPressedHandler()
{
Quaternion CurrentQuat;
var state = this.adapter.GetState();
CurrentQuat = state.Value;
if (Input.GetKeyDown(KeyCode.R))
{
Quaternion StartPosition;
StartPosition.x = 0;
StartPosition.y = 0;
StartPosition.z = 0;
StartPosition.w = 1;
Offset = Quaternion.Inverse(CurrentQuat) * StartPosition;
}
}
void Update()
{
Quaternion CurrentQuat;
var state = this.adapter.GetState();
CurrentQuat = state.Value* Offset;
transform.Rotation = CurrentQuat;
}
我发现了以下问题。如果我将传感器放在水平工作台上并围绕垂直OZ轴旋转,模型(在Unity中)也将围绕OZ轴旋转。然后我将传感器放在侧边缘,如果我围绕OZ轴旋转(OZ现在在水平面上),模型将在不同的轴上旋转。不是模型的OZ ......为什么?如何保留传感器和型号上的轴?