首先.网上会有这样的操作方式:
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.