use*_*346 1 android cross-platform unity-game-engine ios bluetooth-lowenergy
我有一个用 Unity3D 编写的游戏,以便最终将其发布到 iOS 和 Android。
假设游戏应用程序安装在移动设备上,并且我想通过外部蓝牙低功耗设备(例如心率传感器)控制它,那么
构建跨平台架构的更好方法是什么?
例如 - 使其成为在 iOS 和 Android 上实现它的最简单方法?
*External* *Mobile*
Run Code Online (Sandbox Code Playgroud)
低功耗蓝牙设备 --> Something.. --> Unity
Something = 您建议我使用什么跨平台框架来与低功耗蓝牙(将来还可以与数据库)和Unity3D接口以传递逻辑?
多谢
Unity没有蓝牙 API 可以在 iOS 和 Android 上使用蓝牙。这样做的方法是制作一个插件。
对于 iOS,您可以使用 Ocjective-C 或 C++ 编写插件或函数。然后,将 .cpp 或 .mm 文件放入 Assets/Plugins/iOS目录中。
对于Android,您必须用Java或C++编写Android插件,然后将其编译成.jar扩展并将jar文件放置在Assets/Plugins/Android中
每个插件应该具有相同的函数名称,以便它们相互兼容。当您想要为Android或iOS进行编译时,Unity 将自动选择正确的插件文件夹以用于指定的移动平台。
制作这个插件的好方法是在 iOS 或 Android 中编写整个应用程序,并在 XCode 或 Android Studio 中测试您的功能。如果它们有效,那么您可以继续将其转换为插件以在 Unity 中使用。这样可以节省时间。
编辑:
我不喜欢广告产品,但我知道这会对您有所帮助,因此这里有一个插件,您可以使用它进行适用于 Android 和 iOS 的蓝牙 LE 通信。https://www.assetstore.unity3d.com/en/#!/content/26661 这个插件是新的,但我有很好的评论。这就是我发布它的原因。
请记住,大多数心率传感器都带有内置的安全和专有通信协议。因此,即使它使用蓝牙,您也必须对协议进行逆向工程,然后使用我在此处链接的蓝牙插件编写 c# 类,以便能够与它们进行通信。您可以对任何心率传感器进行逆向工程。只需购买其中一款著名的手机即可获得 iPhone 和 Android 手机。
越狱 iPhone 并获取 Android 设备 root 权限。安装蓝牙嗅探应用程序并尝试将您的心率传感器设备与 iPhone 或 Android 进行通信。您可以读取从 iPhone/Android 发送到心率传感器设备的内容或 iPhone/Android 发送到心率传感器设备的内容。这就是您需要在 C# 类中发送给它才能使其工作的内容。其他方法是反编译心率传感器设备附带的应用程序(不推荐)。你可以从那里看到发生了什么。
如果心率传感器有适用于 Android 或 iOS 的API,那么您将别无选择,只能在他们为其提供的 API 之上自行编写插件。
如果您正在制作自己的心率传感器设备,那么这应该更容易。您可以使用 Arduino 制作原型,并使用我在此处链接的插件与其进行通信。如果有效,您就可以继续将其变成真正的产品。
看来H6和H7是最有名的。他们还有一个开发者页面。与这些通信应该很容易,因为它们使用标准协议,而不是像某些协议那样使用专有协议。
http://developer.polar.com/wiki/H6_and_H7_Heart_rate_sensors
Android心率传感器代码(标准):
http://developer.android.com/guide/topics/connectivity/bluetooth-le.html
iOS心率传感器代码(与标准无关):
http://developer.polar.com/wiki/H6_and_H7_Heart_rate_sensors#HR_example_code_for_Android
您可以向我在链接中发布的插件的开发人员发送电子邮件,要求他们支持或帮助您实现心率传感器。他们甚至可能会这么做。祝你好运。
归档时间: |
|
查看次数: |
2283 次 |
最近记录: |