重置传感器方向

时间:2017-08-10 10:28:19

标签: c# unity3d

我有一个传感器。此传感器返回当前方向的四元数。 我添加了重置方向代码,它完美运行:

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 ......为什么?如何保留传感器和型号上的轴?

0 个答案:

没有答案