代码之家  ›  专栏  ›  技术社区  ›  Eric Cherin

未能通过谷歌Daydream Appstore中使用Unity VR的混合Daydream+硬纸板应用程序的资格

  •  0
  • Eric Cherin  · 技术社区  · 7 年前

    我发现了一个问题:应用程序没有正确使用Daydream控制器

    这是我设置GvrPointerInputModule的类。指向使用GVRLaserPointer(用于daydream)或GvrReticlePointer(用于硬纸板)的指针:

    public class InputModuleSelector : MonoBehaviour {
        bool DaydreamControllerConntected = false;
        public GvrBasePointer DayDreamController;
        public GvrBasePointer CardboardController;
    
        private void Start() {
            refreshControllers();
        }
    
        public static bool IsDayDreamMode() {
            return VRSettings.loadedDeviceName != "cardboard";
        }
    
        private void refreshControllers() {
            DaydreamControllerConntected = IsDayDreamMode();
            DayDreamController.gameObject.SetActive(DaydreamControllerConntected);
            CardboardController.gameObject.SetActive(!DaydreamControllerConntected);
    
            GvrPointerInputModule.Pointer = DaydreamControllerConntected ? DayDreamController : CardboardController;
        }
    }
    

    如果我们使用白日梦,我们将使用激光,否则我们将使用十字线。

    我如何让我的应用程序通过?我们可以提交一个可以用于daydream和cardboard的应用程序吗?如果你需要更多信息,请告诉我。

    我不确定我是否应该包括一个链接。。。但我的应用程序在playstore上很活跃: https://play.google.com/store/apps/details?id=com.fungamefuntime.warehouse

    2 回复  |  直到 7 年前
        1
  •  0
  •   Jamieson Pryor    7 年前

    看起来好像你用头凝视来控制光标。除了出现菜单外,在游戏的所有元素中,头部凝视都可以作为控制器的替代品。

        2
  •  0
  •   Eric Cherin    7 年前

    在谷歌支持的帮助下,我找到并纠正了这个问题。主摄像机随玩家的注视方向旋转。这意味着GvrControllerPointer取决于主摄像机。这违反了要求,因为您在移动头部的同时移动了激光器。层次结构视图:

         Player
             Main Camera
                 GvrReticlePointer
                 GvrControllerPointer
    

    当我切换到这个结构时,问题解决了。GvrControllerPointer现在独立于主摄像机和玩家的视线。

         Player
             GvrControllerPointer
             Main Camera
             GvrReticlePointer