一尘不染

通过代码启用/禁用VR

c#

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

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


阅读 1273

收藏
2020-05-19

共1个答案

一尘不染

包括using UnityEngine.XR;在顶部。

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

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

您应该在每个函数调用之间等待一帧。这就需要完成一个常规功能。

另外,在某些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));
}

调用EnableVR()以启用和DisableVR()禁用vr
。如果您使用的不是白日梦,请将该VR设备的名称传递给LoadDevice功能中的EnableVR()功能。

2020-05-19