unity中开关vr设置 unity2019

402 阅读1分钟

首先.网上会有这样的操作方式:

using UnityEngine.VR;
...
VRSettings.enabled = false;

这种方法不管在哪个unity版本中,关闭vr效果是没有任何问题的,但是,问题就出现在重新在某个场景中启用vr.

如果你觉得自己够聪明,使用

using UnityEngine.VR;
...
VRSettings.enabled = true;

你会发现,一点作用都没有.

接着,你发现,unity的API升级,应该是使用

using UnityEngine.XR;
...
XRSettings.enabled = false;
...
XRSettings.enabled = true ;

你也会发现,除了在一个脚本中打开关闭有作用,其他的都将不会起作用,难道还有什么需要设置的吗?当然.

使用如下方法去打开关闭vr功能,实现在不同的场景中使用不同的交互方式:

IEnumerator LoadDevice(string newDevice, bool enable)
{
    XRSettings.LoadDeviceByName(newDevice);
    yield return null;
    XRSettings.enabled = enable;
}

void EnableVR()
{
    StartCoroutine(LoadDevice("OpenVR", true));//HTC平台,也可以换成oclus
}

void DisableVR()
{
    StartCoroutine(LoadDevice("", false));
}

注意,最好在跳转场景之前就开始设置vr.