2

我正在为 iPhone 和 iPad 开发一款 3D Wi-Fi 多​​人游戏,而不使用任何游戏引擎。我参考了本地 Wi-Fi 多​​人游戏设备连接的“<strong>WiTap”示例(示例代码链接:WiTap)。

我发现将“<strong>includesPeerToPeer”属性设置为YES时游戏性能下降,但发现将“<strong>includesPeerToPeer”属性设置为NO时游戏性能更好。此外,当设备蓝牙打开时,游戏性能下降更多。我将此属性设置为 YES 以允许更快地发现设备(以避免此处描述的错误:错误)。我正在 iPhone 5(在 iOS 8.4 上运行)和 iPad 第 3 代(在 iOS 7.1 上运行)测试我的游戏。

我有两个问题:

  1. NSNetservice的includesPeerToPeer属性如何影响我的游戏性能?当我将属性设置为YES或NO(并且设备蓝牙关闭)时,两个设备之间的连接建立有什么区别?

  2. 当设备蓝牙保持开启时,为什么会出现性能下降?这些设备是否在蓝牙可用时通过蓝牙连接?如果是,如何限制我的设备仅通过Wi-Fi进行通信?

我将不胜感激有关此问题的任何建议。先感谢您。

4

1 回答 1

0

打开includesPeerToPeer属性NSNetService启用对等蓝牙和 Wi-Fi 的服务发现,这意味着它同时通过蓝牙和 WiFi 进行广告。

性能问题的原因可能与通过蓝牙进行的通信有关,与 WiFi 相比,蓝牙连接速度相对较慢。

我不知道(2)的答案,我只能推测这就是您看到性能问题的原因是因为通信是通过蓝牙进行的。我不知道有什么方法可以强制仅通过 WiFi 进行连接 - 我已经阅读了几次文档,但看不到改变它的方法。

不过,我已经看到了很多关于禁用蓝牙以获得更好的本地游戏性能的建议。

于 2015-09-01T09:36:50.110 回答