我需要使用 HTC Vive Cosmos Elite 测试 VR Unity 项目 - 但我们正在为 Quest 开发我可以做些什么来区分这两者吗?

问题描述

我在一个大学班级,我们在 Unity for VR 上进行开发。如果学生没有任务,就会给他们一个任务——我自己有一个 Vive(基站跟踪)。结果,我不知道如何为任务开发,当时我只有一个用于测试的 Vive。我们有小组项目,所以当他们加载构建时,我的贡献必须为 Quest 工作。我不相信我的合作伙伴想要使用 oculus link 来运行 steamVR。

是否可以开发一种方法来根据用户区分 vive/quest?还是我们需要开发不同的构建?我的希望是用任务资产生成角色,或者如果硬件存在,则用 SteamVR 资产生成角色。

由于 Quest 是 android,我担心这可能是不可能的。你怎么认为?如果我可以用我的 Vive 模拟这个任务,那也是可以接受的。我们不需要提供 Vive 支持 - 我只需要一些进行测试。

解决方法

您应该为 Vive 使用 SteamVR SDK,然后阅读 How to port a SteamVR to Oculus Quest

该页面解释了有关创建支持两者的应用程序的许多详细信息。

例如特别是为了检测您在哪个平台上,您可以通过 Platform dependent compilation

使用 #if pre-processor tags
#if UNITY_ANDROID && !UNITY_EDITOR
  //Oculus Quest code
#else
  //SteamVR code
#endif

当然,最后您仍然需要进行两次构建,但这样您就可以同时在 Vive 和 Oculus 的最终构建中实现和测试。

当然,无论哪种方式,您都应该看到您至少可以测试一次或两次 Oculus 部分的基本功能......不要等到演示日;)