从代码启用/禁用VR


庸人自扰1
2025-03-18 09:12:45 (24天前)
  1. 对于部署到Android设备的应用,如何在Unity中以编程方式将显示设置为立体?

我想要一个UI菜单,用户可以在其中切换“

VR
</跨度>
模式“和正常模式。我不想要

VR
</跨度>
默认情况下模式,因为它应该是运行时的选项。我知道在构建设置中有“虚拟现实支持”的设置,但同样,我不希望默认启用此功能。

2 条回复
  1. 0# 不浪漫 | 2019-08-31 10-32



    包括

    using UnityEngine.XR;

    在顶部。



    呼叫

    XRSettings.LoadDeviceByName(“”)

    后跟空字符串

    XRSettings.enabled = false;

    在启动功能中禁用VR以禁用VR。



    如果您想稍后启用它,请致电

    XRSettings.LoadDeviceByName(“daydream”)

    随后是VR名称

    XRSettings.enabled = true;




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



    此外,在某些VR设备上,您必须前往

    编辑
    </强>

    1. - GT;
    2. 的<strong>
    3. 项目设置
    4. </强>
    5. - GT;
    6. 的<strong>
    7. 播放机
    8. </强>
    9. 并确保
    10. 的<strong>
    11. 虚拟现实支持
    12. </强>
    13. 复选框是
    14. 的<strong>
    15. 检查
    16. </强>
    17. true)在此之前可行。然后,您可以在“启动”功能中将其禁用,并随时启用它。




    编辑
    </强>



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




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

    2. void EnableVR()
      {
      StartCoroutine(LoadDevice(“daydream”, true));
      }

    3. void DisableVR()
      {
      StartCoroutine(LoadDevice(“”, false));
      }

    4. </code>


    呼叫

    EnableVR()

    启用vr和

    DisableVR()

    禁用它。如果您使用的是白日梦以外的任何内容,请将该VR设备的名称传递给

    LoadDevice

    功能在

    EnableVR()

    功能。


登录 后才能参与评论