【问题标题】:Getting Movement with Google Cardboard in Unity在 Unity 中使用 Google Cardboard 获得运动
【发布时间】:2017-09-14 22:22:22
【问题描述】:

我想使用 Google Cardboard 将 Unity 中的场景放入虚拟现实中。

我以前可以将 CardboardMain 预制件拖入场景中,删除主摄像头,使用 CardboardMain 作为摄像头位置,并使用 CardboardHead 来跟踪用户正在查看的位置。

在阅读了release notes 的新更新后,我想我可以将 GVREditorEmulator 和 GVRControllerMain 拖到场景中,并保持正常的相机。

不幸的是,我不知道如何让相机在这个新设置下跟随我的角色。 (在这种情况下,是一个滚动的球。)

如果我改变普通相机的位置,它看起来在 Unity 中可以正常工作,但是一旦我将它上传到我的手机,用户就会停留在同一个地方,而球会滚走。 (用户仍然可以控制球的运动,但相机/用户根本不跟随球。)

我曾认为chase cam demo 会很有用,但这仅适用于 Daydream,而且我正在使用 Cardboard。

This trick 似乎对某些人有用。我尝试了以前版本的 Unity 和以前版本的 SDK,但它似乎不起作用。我可能只需要在这个新版本上尝试一下,但我担心进入发布的代码并对其进行编辑,所以我更喜欢不需要这个的答案。

当我将用户上传到我的 iPhone 时,有什么方法可以让用户在 Unity 中的 Google Cardboard 场景中移动?

更新: 看起来我的主要相机对象似乎没有移动,这让我觉得每次都将它重新设置回中心,从而更加相信之前的“技巧”。我现在将尝试“诀窍”,看看它是否有效。

更新:看起来“技巧”中列出的行不再存在,新程序中类似的行甚至似乎都没有运行。仍在尝试找出继续重置主摄像头位置的原因。

更新:刚刚在 GitHub 上收到 Google 的回复(或至少有人在开发 SDK),上面写着 "You just need to make the node that follows the player a parent of the camera, not the same game object as the camera." 我不太确定这意味着什么,所以如果有人能解释一下,那很可能解决我的问题。如果我自己解决了,我会在这里发回。

更新:Zarko Ristic 发布了一个答案,解释了这是什么,但不幸的是,跟踪仍然关闭。我发现了如何让 Google Cardboard 与旧的 SDK 一起工作并发布了一个答案。仍在寻找让新 SDK 正确跟随角色的方法。

【问题讨论】:

    标签: c# ios unity3d google-cardboard


    【解决方案1】:

    您不能在纸板应用程序中更改相机的位置,MainCamera 的位置必须始终为 0,0,0。但是你可以简单地创建一个空的 GameObject 并使其成为 MainCamera 的父级。在 Cardboard 游戏中,实际上您可以直接移动相机的父级而不是 MainCamera。 将跟踪球的脚本添加到 MainCamera 父级(GameObject)。

    【讨论】:

    • 更具体地说,创建一个空游戏对象,将主摄像机拖到空游戏对象下,将移动脚本从摄像机中删除并放在空游戏对象上。然后玩家应该移动。 (另外,非常感谢 - 我要花很长时间才能在其他地方找到这个。)
    • 不客气。注意:如果你想直接移动摄像机,你可以使用 GVR SDK 0.6,你也不需要在播放器设置中勾选 VR 支持框,它给你更多的选择。我认为这是 Cardboard 应用程序的最佳 SDK(不适用于 Daydream 或其他)。
    • 我可以试试这个,因为我的脚本仍然不能正常工作。相机正在移动,但没有完全移动到我预期的位置。
    • 在使用 SDK 0.6 时,我不断收到链接器错误“ld:警告:arm64 函数未 4 字节对齐:ltmp0 来自 /.../Libraries/libiPhone-lib.a(unwind_test_arm64 .o)" 所以我认为我不能使用那个。 (编辑可能与此有关:github.com/googlevr/gvr-unity-sdk/issues/518
    • 感谢您的资源!我希望是这样,不幸的是,我对 0.6 的问题在于 XCode,而不是 Unity 或任何 Andriod。也许我不应该尝试使用启用 Google Cardboard 的模式……让我去检查一下。
    【解决方案2】:

    这并不能回答我的问题,而是解决问题的方法。

    1. 不要使用最新版本的 SDK。使用 0.6 版
    2. 在 Unity 中构建应用程序时,不要在构建设置下选择启用 VR。 (VR 仍将在应用中启用。)(图片来源:Zarko Ristic)
    3. 将应用程序放到手机上时,如果 XCode 提示您更改任何设置,您可以忽略它。
    4. 另外,在“Build Settings -> Enable Bitcode -> No”下禁用bitcode(目前,这将不允许您将应用程序放到应用商店。如果有人提供有关如何获取的信息,我将不胜感激它可以在不执行此操作的情况下运行。)

    现在您的应用应该可以在您的手机上正常运行了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多