首页 > 解决方案 > GvrEventSystem 与 EventSystem

问题描述

开发 Unity 混合 VR(纸板)/2D 应用程序。它的纸板面工作正常。我在 2D/VR 切换时遇到问题。

当我处于 2D 模式时,虽然屏幕点击注册,但标线不会移动。所以应用程序似乎不知道陀螺仪。

我觉得我在这里缺少一些基本的东西。我有一个 GvrEventSystem 预制件,它同时具有 EventSystem 和 GvrPointerInputModule 组件。

我忽略了什么明显的东西?

预计到达时间:

我被要求添加相关代码。这是 2D-VR 即时切换的代码。此代码执行无错误,应用程序每 3 秒在 VR 和 2D 模式之间切换:

  readonly string NONE_STRING = "";
  readonly string CARDBOARD_STRING = "cardboard";

  void Start()
  {
    Invoke("GoPhone", 3.0f);
  }

  void GoPhone()
  {
    SetVREnabled(false);
    Invoke("GoVR", 3.0f);
  }

  void GoVR()
  {
    SetVREnabled(true);
    Invoke("GoPhone", 3.0f);
  }

  void SetVREnabled(bool isEnabled)
  {
    if (isEnabled)
    {
      StartCoroutine(LoadDevice(CARDBOARD_STRING));
    }
    else
    {
      StartCoroutine(LoadDevice(NONE_STRING));
    }
  }

  IEnumerator LoadDevice(string newDevice)
  {
    if (String.Compare(XRSettings.loadedDeviceName, newDevice, true) != 0)
    {
      XRSettings.LoadDeviceByName(newDevice);

      yield return null;

      if (!XRSettings.loadedDeviceName.Equals(NONE_STRING))
        XRSettings.enabled = true;
    }
  }

虽然我觉得我的问题是配置问题,而不是代码问题。在不支持 VR 模式的编辑器中,应用程序按预期在 2D 模式下运行。

还有预计到达时间:

GVR事件系统 相机

建投

标签: unity3dvirtual-realitygoogle-cardboard

解决方案


用户错误!我没有遵循https://developers.google.com/vr/develop/unity/guides/magic-window中详述的“魔术窗口”说明……让我的愚蠢成为对后代的警告!


推荐阅读