停止和恢复Oculus运动



我试图编辑默认的oculus相机脚本,以停止响应跟踪传感器一段时间,然后从相机指向的地方恢复正常运动,它停止跟踪传感器。

我能够阻止相机对跟踪传感器的响应,但现在当它恢复工作时,它会"捕捉"到相机所在的位置,如果传感器没有停用。然而,我希望它只是"无缝"的简历跟踪。所以我想我还必须在这段时间内阻止一些变量的更新。

这是我的代码到目前为止,它位于OVRCamera脚本中的函数SetCameraOrientation:
if (Time.realtimeSinceStartup >= 11f && Time.realtimeSinceStartup <= 17f)
{
    camera.transform.rotation = lastRotation;
}
else
{
    camera.transform.rotation = q;
    lastRotation = q;
}

这是我的新变量的变量声明:

private Quaternion          lastRotation        = new Quaternion();
如果有人能帮我,我会很感激的。

谢谢。

如果你想从你离开的地方恢复跟踪,那么当你恢复时,你需要记录当前方向和lastRotation之间的delta,这样你就可以从那时起应用delta逆…

我不知道Unity四元数的确切语法,但你想要这样的东西:

if (Time.realtimeSinceStartup >= 11f && Time.realtimeSinceStartup <= 17f)
{
    camera.transform.rotation = lastRotation;
    deltaRotation = q * lastRotation.inverse();
}
else
{
    lastRotation = q * deltaRotation.inverse();
    camera.transform.rotation = lastRotation;
}

最新更新