c# - 在 Unity 中使用 Google Cardboard 进行运动

标签 c# ios unity-game-engine 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 上收到 Google(或者至少是开发 SDK 的人)的回复,其中表示 “您只需将跟随玩家的节点设为相机的父节点,而不是相同的节点游戏对象作为相机。” 我不太确定这意味着什么,所以如果有人可以解释这一点,那很可能会解决我的问题。如果我自己弄清楚,我会在这里发帖。

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

最佳答案

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

关于c# - 在 Unity 中使用 Google Cardboard 进行运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46229059/

相关文章:

android - 如何在我的 Android 应用程序中进行实时人体分割

c# - Linq-to-sql 外键 id 未自动添加

来自点符号平面文件的 C# treeview

c# - 如何判断变量是否在 Roslyn 的某个语法节点的范围内?

iOS 纵横比和居中

android - 在 Unity 中销毁实例化对象

c# - Silverlight 字母间距

ios - setContentOffset 到 scrollView 中的 UIImage loaction

ios - Unity转Xcode错误: Apple Mach-O Linker (ld) Error Group

java - 如何将 Unity webapp 放到 Google 应用引擎上