首页 文章

跨平台应用程序Unity3D

提问于
浏览
1

我在Unity3D中编写了一个游戏,以便最终将其发布到iOS和Android .

假设游戏App安装在手机上,我想通过外部蓝牙低功耗设备控制它(例如 - 心率传感器)
What would be the better way to make the architecture for that for making it cross platform?
例如 - 使其成为在iOS和Android上实现它的最简单方法吗?

*External*        *Mobile*

蓝牙低功耗设备 - >东西...... - > Unity

Something =你建议我使用什么跨平台框架,它可以与蓝牙低功耗(未来还有数据库)和Unity3D接口,以传递逻辑?

非常感谢

1 回答

  • 2

    Unity确实 NOT 有蓝牙API在iOS和Android上使用蓝牙 . 这样做的方法来制作一个插件 .

    For iOS ,您可以在Ocjective-C或C中编写插件或函数 . 然后将.cpp或.mm文件放在 Assets/Plugins/iOS 目录中 .

    For Android ,你必须用Java或C编写Android插件然后将其编译成.jar exntention并将jar文件放在 Assets/Plugins/Android

    每个插件都应该有 thesame 个函数名,这样它们就会相互 compatible . 如果要编译 AndroidiOS ,Unity将自动选择用于指定移动平台的正确插件文件夹 .

    制作此插件的好方法是在iOS或Android中编写完整的应用程序,并在XCode或Android Studio中测试您的功能 . 如果它们有效,那么您可以继续将其转换为插件以在Unity中使用 . 这节省了时间 .

    EDIT:

    我不喜欢颠覆产品,但我知道这会对你有所帮助,所以这里有一个插件,可以用于适用于Android和iOS的蓝牙LE通信 . https://www.assetstore.unity3d.com/en/#!/content/26661这个插件是新的,但我有很好的评论 . 这就是我发布它的原因 .

    请记住,大多数 Heart rate sensors 都带有内置的安全和专有通信协议 . 因此,即使它使用蓝牙,您也必须对协议进行反向工程,然后使用我在此处链接的蓝牙插件编写c#类,以便能够与它们进行通信 . 您可以对任何心率传感器进行逆向工程 . 只需购买一个着名的,然后获得iPhone和Android手机 .

    越狱iPhone并根植Android设备 . 安装蓝牙嗅探应用程序并尝试将您的心率传感器设备与iPhone或Android通信 . 您可以从iPhone / Android或iPhone / Android发送到心率传感器设备的内容中读取已发送到心率传感器设备的内容 . 这就是您需要在c#类中发送它以使其工作 . 其他方法是对心率传感器设备附带的应用程序进行反编译(不推荐) . 你可以看到那里发生了什么 .

    如果 Heart rate sensor 对于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

    您可以通过电子邮件发送我在链接中发布的插件的开发人员,并要求他们支持或帮助您实施心率传感器 . 他们甚至可能会这样做 . 祝好运 .

相关问题