从代码启用/禁用VR

Sof*_*ver 6 c# unity-game-engine virtual-reality unity5

对于部署到Android设备的应用,如何在Unity中以编程方式将显示设置为立体?

我想要一个UI菜单,用户可以在"VR模式"和普通模式之间切换.我默认不想要VR模式,因为它应该是运行时的选项.我知道在构建设置中有"虚拟现实支持"的设置,但同样,我不希望默认启用此功能.

Pro*_*mer 11

包括using UnityEngine.XR;在顶部.

XRSettings.LoadDeviceByName("")使用空字符串调用,然后XRSettings.enabled = false;在启动功能中禁用VR以禁用VR.

如果要稍后启用它,请XRSettings.LoadDeviceByName("daydream")使用VR名称后跟XRSettings.enabled = true;.

您应该在每个函数调用之间等待一个帧.这需要做一个corutine功能.

另外,在某些VR设备,你必须去编辑 - > 项目设置 - > 播放器,并确保虚拟现实支持的复选框被选中(真),在此之前将工作.然后,您可以在"启动"功能中将其禁用,并随时启用它.

编辑:

众所周知,这适用于某些VR设备,而不适用于所有VR设备.虽然,它应该适用于Daydream VR.完整的代码示例:

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

void EnableVR()
{
    StartCoroutine(LoadDevice("daydream", true));
}

void DisableVR()
{
    StartCoroutine(LoadDevice("", false));
}
Run Code Online (Sandbox Code Playgroud)

调用EnableVR()以启用vr并DisableVR()禁用它.如果您使用的是白日梦以外的任何内容,请将该VR设备的名称传递给该LoadDevice功能中的该EnableVR()功能.


rus*_*sty 5

对于较新的 Unity 版本(例如 2019.4.0f1),您可以使用XR 插件管理包。

要启用呼叫:

XRGeneralSettings.Instance.Manager.InitializeLoader();
Run Code Online (Sandbox Code Playgroud)

禁用呼叫:

XRGeneralSettings.Instance.Manager.DeinitializeLoader();
Run Code Online (Sandbox Code Playgroud)