在Unity中使用Google Cardboard进行移动

时间:2017-09-14 22:22:22

标签: c# ios unity3d google-cardboard

我想使用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(或者至少是从事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正确跟踪角色的方法。

3 个答案:

答案 0 :(得分:2)

您无法在纸板应用中更改相机的位置,MainCamera的位置始终必须为0,0,0。但你可以简单地制作空的GameObject并使其成为MainCamera的父级。在Cardboard游戏中,你可以直接移动相机的父母而不是MainCamera。 添加用于跟踪球到MainCamera父级(GameObject)的脚本。

答案 1 :(得分:0)

https://youtu.be/_qAX0omASVg

观看此视频。他已在视频中解释了如何将相机与球位置一起移动。

我希望这适合你。

答案 2 :(得分:0)

这不能回答我的问题,但可以解决问题。

  1. 请勿使用最新版本的SDK。使用版本0.6
  2. 在Unity中构建应用程序时,请勿选择在构建设置下启用VR。 (VR仍将在应用程序中启用。)(信用:Zarko Ristic)
  3. 将应用程序放到手机上时,如果XCode提示您更改任何设置,则可以忽略它。
  4. 此外,在“Build Settings - > Enable Bitcode - > No”下禁用bitcode(目前,这不允许您将应用程序放到应用程序商店。如果有人知道如何获取有关信息,我将不胜感激。在没有这样做的情况下让它运行。)
  5. 现在您的应用应该可以在手机上正确运行。