从代码启用/禁用VR

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

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

包括using UnityEngine.VR; 在顶部。

用空string调用VRSettings.LoadDeviceByName("") ,然后VRSettings.enabled = false; 禁用启动function中的VR以禁用VR。

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

您应该等待每个函数调用之间的一个帧。 这需要做一个corutinefunction。

此外,在一些VR设备上,你必须去编辑 – > 项目设置 – > 播放器 ,并确保在虚拟现实支持checkbox被选中 (true)之前,这将工作。 然后,您可以在启动function中将其禁用,并在需要时启用它。

编辑

这是众所周知的一些VR设备,而不是所有的VR设备。 虽然,它应该在Daydream VR上工作。 完整的代码示例:

 IEnumerator LoadDevice(string newDevice, bool enable) { VRSettings.LoadDeviceByName(newDevice); yield return null; VRSettings.enabled = enable; } void enableVr() { StartCoroutine(LoadDevice("daydream", true)); } void disableVr() { StartCoroutine(LoadDevice("", false)); } 

调用enableVr()来启用vr和disableVr()来禁用它。 如果您使用的不是白日梦,请将该VR设备的名称传递给enableVr()函数中的enableVr()函数。