2013-10-02 42 views
1

我建立兩個部分組成適用於iPad的應用程序:統一窗口+本地iOS窗口在同一個應用程序?

  1. 與可可
  2. 一個團結的場景

內置的用戶界面,我需要找到兩部分相結合的方式,並讓他們相互溝通。

了大量的研究是在此基礎上tutorial

基本上一個,我已經找到了最好的方法,我有我的應用程序的委託,一二UIWindows,我把所有的可可viewcontrollers和其他的層次是Unity窗口。當我想切換哪個窗口可見時,我只需調用[someWindow makeKeyAndVisible];在目標窗口上。當我需要從可可端與U​​nity進行通信時,我會調用UnitySendMessage。

這種方法似乎在一開始就工作得很好,但當我玩我的應用程序,並在UIWindows之間切換幾次之後,UnitySendMessage調用隨機停止產生任何效果,Unity場景停止更新幀,甚至達到一個地步窗口不會再和直到應用爆炸發生變化......

基本上,我想知道的是:

  1. 這是整合團結和可可的意見,最好的辦法? 是否存在這樣的「官方」方式?任何人都可以指出我詳盡的教程或示例代碼嗎?
  2. 這是最好的方法,關於它爲什麼會在一段時間後開始失敗 ?在更換 窗口時是否需要採取任何預防措施? (內存管理?暫停Unity線程?)

注意:我使用Unity Pro,並且我嘗試了xcode4/ios6和xcode5/ios7,並且行爲是相同的。

任何幫助將不勝感激。

+1

在ObjC邊有一個叫UnityPause(布爾)方法當Unity獲得並失去焦點時被調用。當您在窗口之間翻轉時,您可能需要手動調用該方法。 – Calvin

+0

感謝您的提示,我已經這樣做了。實際上,我認爲這可能是問題,並且儘量不要讓Unity在後臺運行,但這兩種情況都會出現問題......任何其他想法? –

回答

2

我們使用AteBit的解決方案是讓應用程序的ObjC部分將其數據存儲在我們的SQLite數據庫中。 Unity應用程序不斷對數據庫進行輪詢,以便自然地進行更改,因此非常適合透明(無雙關語)UI解決方案。

從您的數據中完全分開您的用戶界面,並得到自己的壽司。

更新

同樣,你可以使用NSUserDefaults的系統,這是使用內部統一訪問PlayerPrefs.Get#//設置#

+0

但你有沒有遇到同樣的問題?因爲我們尚未在應用中使用任何數據庫。 –

+0

檢查我的更新。 –

+0

我不理解。我需要做的是實時與iOS端進行溝通。並切換哪個窗口在兩者之間可見。我沒有數據存儲問題。 –

相關問題