次の 2 つの部分で構成される iPad 用のアプリを作成しています。
- ココアで構築されたユーザー インターフェイス
- ユニティのシーン
そして、両方の部分を統合し、相互に通信させる方法を見つける必要がありました。
多くの調査の後、私が見つけた最良のアプローチは、このチュートリアルに基づくものでした
基本的に、アプリ デリゲートには 2 つの UIWindows があります。1 つはすべてのココア ビュー コントローラーの階層を保持し、もう 1 つは Unity ウィンドウです。表示するウィンドウを切り替えたいときは、[someWindow makeKeyAndVisible]; を呼び出すだけです。ターゲット ウィンドウで。ココア側から Unity に通信する必要があるときは、UnitySendMessage を呼び出します。
このアプローチは最初はかなりうまくいくように見えますが、アプリで遊んでいて、UIWindows を数回切り替えた後、UnitySendMessage への呼び出しがランダムに効果を生成しなくなり、Unity シーンがフレームの更新を停止し、さらにはウィンドウはもう変わらず、アプリが爆発するまで...
基本的に、私が知りたいことは次のとおりです。
- これは、Unity ビューと cocoa ビューを統合するための最良のアプローチですか? これを行う「公式」の方法はありますか?徹底的なチュートリアルやサンプル コードを教えてくれる人はいますか?
- これが最善のアプローチであるため、しばらくすると失敗し始める理由について何か考えはありますか? ウィンドウを変更する際に注意することはありますか? (メモリ管理? Unity スレッドの一時停止?)
注: Unity Pro を使用しています。xcode4/ios6 と xcode5/ios7 の両方を試しましたが、動作は同じです。
どんな助けでも大歓迎です。