2017-01-04 9 views
1

Unity3D要素を含むiOSアプリケーションを作成します。私はまた、これらの要素をコントロールし、色を変更し、特定のプロパティを設定したいと思っています。ネイティブiOSアプリケーションから組み込みUnityアプリケーションを制御する方法

UIKit要素からこの制御を行いたいので、簡単にインターフェイスを作成できます(UINavigationControllerなどのネイティブ要素を使用して)。

ネイティブ(またはXamarin)アプリでUnity3Dビューをサブビューとして統合する方法はありますか?

Unityからエクスポートしたビルドコードを別のプロジェクトの中に入れて、UIWindowをインスタンス化して必要なときに表示する方法を見つけましたが、ビュー階層のサブビューとして使用します。

誰もこれにいくつかの経験がありますか?これを行う方法ですか?

編集:は、私は私の心の中の構造を有する:(その内容と混乱しない場合、またはその中に含まれていてもビュー)のメインウィンドウを取り、団結アプリを作成し、使用します私が好きなように、ビューの階層構造で表示します。 Native Plugin Interfaceを使用してUnityビューと話すことができるかもしれないと思う。

EDIT2:私は念頭に置いていた全体のプロセスを説明するビデオを見つけました:https://vimeo.com/145572230

答えて

1

この相互作用は、ユニティのために書き込まれるiOSのプラグインが必要になります。少しタフな仕事が間違いなく可能です。 あなたの質問に答えてください。

https://docs.unity3d.com/Manual/PluginsForIOS.html

次のようにC#ファイルであなたのextern方法を定義します。のiOSにエディタを設定し

[DllImport ("__Internal")] 
private static extern float FooPluginFunction(); 

はターゲットを構築 生成Xcodeプロジェクトの「クラス」にあなたのネイティブコードのソースファイルを追加します。フォルダ(このフォルダは、プロジェクトが更新されたときに上書きされませんが、ネイティブコードをバックアップするのを忘れないでください)。 プラグインを実装するためにC++(.cpp)またはObjective-C++(.mm)を使用している場合は、名前のマングリングの問題を避けるために関数がCリンケージで宣言されていることを確認する必要があります。

extern "C" { 
    float FooPluginFunction(); 
} 

希望

UnitySendMessage("GameObjectName1", "MethodName1", "Message to send"); 

ネイティブコードからUnityにコールする

に役立ちます
関連する問題