【问题标题】:Google Cardboard Unity SDK Tilted not working on a deviceGoogle Cardboard Unity SDK 倾斜无法在设备上运行
【发布时间】:2016-07-07 19:47:04
【问题描述】:

我正在尝试制作一个响应某些 Update() 方法中的 Cardboard.SDK.Tilted 标志的应用。

在 Unity Player 中运行时,通过按 Esc 按钮,Cardboard.SDK.Tilted 设置为 true,所以一切正常。 但是当我为 Android 构建应用程序时,如果我倾斜设备,Cardboard.SDK.Tilted 将保持错误。其他带有倾斜动作的 VR 应用在我的手机上运行良好。在为 Android 构建之前,我是否必须启用任何其他选项才能使其工作?

我正在使用 Unity v5.3.3f1 和 Cardboard SDK v0.6,我试用过的设备是 Xperia Z2、三星 Galaxy S3 和 iPhone 6。

编辑: 因此,我尝试将此代码放入 Update() 和 LateUpdate() 方法中:

if (Cardboard.SDK.Tilted) {
            print("tilted, next scene");
            NextScene ();
}

当屏幕倾斜时,应该加载新场景。 但正如我所说,它只能在 Unity Player 中通过按 Esc 按钮触发倾斜,在真实设备上什么都不会发生 - Cardboard.SDK.Tilted 变量永远不会设置为 true。

我在https://recordnotfound.com/cardboard-unity-googlesamples-6780/issues 上看到,在 v0.6 中存在 Tilt 停产问题,是否可能不再支持?但奇怪的是它可以在 Unity Player 中运行,而不能在真实设备上运行。

【问题讨论】:

    标签: android unityscript google-cardboard tilt


    【解决方案1】:

    我可以验证 Cardboard.SDK.Tilted 标志似乎不像以前版本的 SDK 那样工作。退出按钮会在调试器中触发它,但倾斜动作不会在构建中触发它。

    但是,您可以使用 Input.acceleration 非常简单地实现等效:

    float angle = 80.0f / 360.0f * 2.0f * Mathf.PI;
    bool isTilted = Mathf.Abs(Input.acceleration.normalized.x) > Mathf.Sin(angle);
    if (Cardboard.SDK.Tilted || isTilted)
    {
        //Action here
    }
    

    如果设备的加速度完全是由重力引起的,则角度浮动是设备与水平面的角度。尝试对太小的 Vector3 进行归一化会将其设置为零,因此小向量不应触发条件。预先计算正弦以节省一个周期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 2020-08-01
      • 1970-01-01
      相关资源
      最近更新 更多