我使用 Unity VR 的混合 Daydream + Cardboard 应用未能通过 Google Daydream Appstore 资格

Failed to pass eligibility in the Google Daydream Appstore for my hybrid Daydream + Cardboard app using Unity VR

我遇到问题:该应用未正确使用 Daydream 控制器 该应用程序允许用户使用头部注视来定位光标并与菜单 UI 的 "Play" 按钮进行交互。

这是我的 class,它将 GvrPointerInputModule.Pointer 设置为使用 GVRLaserPointer(用于白日梦)或 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 的应用程序?如果您需要更多信息,请告诉我。

我不确定我是否应该包含 link... 但我的应用程序在 Playstore 上处于活动状态:https://play.google.com/store/apps/details?id=com.fungamefuntime.warehouse

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

在 Google 支持人员的帮助下,我能够找出并纠正问题。主摄像机随玩家的注视方向旋转。这意味着 GvrControllerPointer 依赖于主摄像头。这违反了要求,因为您在移动头部的同时也移动了激光。层次结构视图:

     Player
         Main Camera
             GvrReticlePointer
             GvrControllerPointer

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

     Player
         GvrControllerPointer
         Main Camera
         GvrReticlePointer