2

我正在为 iPad 构建一个应用程序,由两部分组成:

  1. 用可可构建的用户界面
  2. Unity 场景

我需要找到一种方法来整合这两个部分并让它们相互通信。

经过大量研究,我发现的最佳方法是基于本教程的

基本上,我的应用程序委托上有两个 UIWindows,一个用于保留所有可可视图控制器的层次结构,另一个是 Unity 窗口。当我想切换哪个窗口可见时,我只需调用 [someWindow makeKeyAndVisible]; 在目标窗口上。当我需要从可可端与 Unity 通信时,我调用 UnitySendMessage。

这种方法一开始似乎效果很好,但是当我玩我的应用程序并在 UIWindows 之间切换几次后,对 UnitySendMessage 的调用随机停止产生任何效果,Unity 场景停止更新帧,甚至达到了一个点窗户不再改变,直到应用程序爆炸......

基本上,我想知道的是:

  1. 这是集成 Unity 和可可视图的最佳方法吗?有没有“官方”的方式来做到这一点?谁能指出我详尽的教程或示例代码?
  2. 作为最好的方法,你知道为什么它会在一段时间后开始失败吗?更换窗户时需要采取任何预防措施吗?(内存管理?暂停 Unity 线程?)

注意:我使用的是 Unity Pro,并且我已经尝试过 xcode4/ios6 和 xcode5/ios7 并且行为是相同的。

任何帮助将非常感激。

4

1 回答 1

3

我们使用 AteBit 的解决方案是让应用程序的 ObjC 部分将其数据存储在我们的 SQLite 数据库中。Unity 应用程序会自然地不断轮询该数据库以进行更改,因此它非常适合透明(没有双关语)的 UI 解决方案。

将您的 UI 与您的数据完全分开,给自己买点寿司。

更新

同样,您可以使用 NSUserDefaults 系统,该系统可使用 PlayerPrefs.Get# // Set# 在 unity 内部访问

于 2013-10-03T15:56:43.163 回答