在 Unity 中使用 Google Cardboard 移动

Getting Movement with Google Cardboard in Unity

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

我以前只能将 CardboardMain 预制件拖到场景中,删除主摄像头,使用 CardboardMain 作为摄像头位置,并使用 CardboardHead 跟踪用户的视线。

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

不幸的是,我不知道如何使用这个新设置让相机跟随我的角色。 (在本例中,是一个滚动的球。)

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

我原以为 chase cam demo 会有用,但那只适用于 Daydream,而我正在使用 Cardboard。

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

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

更新: 看起来好像我的主要相机对象没有移动,让我觉得每次都有什么东西将它重置回中心,让之前的 "trick" 更加可信。我现在将尝试 "the trick" 看看它是否有效。

更新:"trick" 中列出的行似乎不再存在,新程序中类似的行似乎也不存在 运行。仍在尝试弄清楚是什么继续重置主摄像头的位置。

更新:刚刚在 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." 我不太确定那是什么意思,所以如果有人可以解释,那很可能会解决我的问题。如果我自己想出来,我会 post 回到这里。

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

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

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

  1. 不要使用最新版本的SDK。使用版本 0.6
  2. 在 Unity 中构建应用时,请勿select在构建设置下启用 VR。 (应用程序中仍会启用 VR。)(图片来源:Zarko Ristic)
  3. 将应用程序安装到您的 phone 时,如果 XCode 提示您更改任何设置,您可以忽略它。
  4. 此外,禁用"Build Settings -> Enable Bitcode -> No"下的bitcode(目前,这不会让你把你的应用程序放到应用程序商店。如果有人知道如何把它放到应用程序商店,我将不胜感激运行 没有这样做。)

现在您的应用程序应该 运行 在您的 phone 上正确。