跨平台应用程序Unity3D

时间:2015-05-15 22:50:58

标签: android ios unity3d cross-platform bluetooth-lowenergy

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

假设游戏App安装在手机上,我想通过外部蓝牙低功耗设备(例如 - 心率传感器)控制它。制作架构的更好方法是什么为了让它跨平台?
例如 - 使其成为在iOS和Android上实现它的最简单方法吗?

    *External*        *Mobile* 

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

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

非常感谢

1 个答案:

答案 0 :(得分:2)

Unity NOT 拥有蓝牙API,可在iOS和Android上使用蓝牙。这样做制作插件的方法。

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

对于Android ,您必须使用Java或C ++编写Android插件,然后将其编译为.jar exntention并将jar文件放在 Assets / Plugins / Android < / p>

每个插件都应具有相同的功能名称,以便它们彼此兼容。如果您想为 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设备。安装蓝牙嗅探应用程序并尝试将您的心率传感器设备与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

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