【问题标题】:Google Daydream smartphone as controller (unity-bluetooth)Google Daydream 智能手机作为控制器(统一蓝牙)
【发布时间】:2019-04-12 19:19:04
【问题描述】:
是否可以将智能手机用作 Google Daydream 独立设备的控制器?
我们的计划是使用 Android 蓝牙插座在智能手机和 Daydream 设备之间打开蓝牙连接。然后我们只是以我们自己的格式传输字节并在另一边解释它。
这一切都将在 Unity 中实现。
所以真正的问题是:
- 我们可以创建在 Daydream 中运行的 Unity Android 插件吗?
- 我们是否有足够的权限来访问蓝牙 API 并以自定义方式使用它?
(我们也在评估 OculusGo,但我们有同样的未知数)
【问题讨论】:
标签:
unity3d
bluetooth
android-bluetooth
google-vr
【解决方案1】:
是的,您可以向 Unity 请求蓝牙权限。您可能还想使用蓝牙插件,除非您想处理稍微古怪的 java 调用。 OculusGo 和 Daydream 在内部仍然是 Android 设备,您只是无法将它们拿出来拨打电话。
令人惊讶的是,要使蓝牙正常工作,您还需要在 AndroidManifest.xml 中请求位置权限(这花了我一段时间)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
我不确定是否真的需要 BLUETOOTH_ADMIN。
我对 OculusGo 没有太多经验,但我想它会与 GearVR 非常相似,堆栈受到严密保护,无法绕过控制器配对,绕过他们非常锁定的 API(你需要生成 OCUSIG对于您的设备,否则应用程序将在启动时崩溃)。不确定这对 Go 有多大影响
如果你想桥接两个安卓设备,使用本地网络作为传输而不是蓝牙要容易得多 - 发送 UDP 数据包对我来说效果最好,唯一的条件是设备必须共享本地网络但打开热点从一个应该做的伎俩