一部のシナリオでは、ネイティブプラットフォームテクノロジー(Android/JavaおよびiOS/Objective Cなど)を使用する開発者は、ARエクスペリエンス、3Dモデルとの相互作用など、Unityを利用した機能(通常は3D / 2Dリアルタイムレンダリング用)をアプリ/ゲームに含めたいと考えています。 、2Dミニゲーム。
Unityを利用した機能(Unity 2019.3.a2以降)をネイティブモバイルアプリケーションに直接挿入できるようになりました。これらの機能には、拡張現実、2Dミニゲーム、3Dモデルなどの3Dまたは2Dリアルタイムレンダリング機能が含まれますが、これらに限定されません。
Unityランタイムコンポーネントとコンテンツをネイティブプラットフォームプロジェクトに統合できます。Unityランタイムライブラリは、ネイティブアプリケーション内でいつどのようにロード/アクティブ化/アンロードするかを管理するためのコントロールを公開しています。
事前要件:
- Android Studio 3.4.2 +
- Unityバージョン2019.3.0b4+
制限事項
ネイティブアプリによってホストされるライブラリとしてUnityの多くのシナリオをテストしましたが、Unityはランタイムのライフサイクルを制御しなくなったため、考えられるすべてのユースケースで機能することを保証できません。
例えば:
- ライブラリとしてのUnityはフルスクリーンのレンダリングのみをサポートし、画面の一部でのレンダリングはサポートされていません。
- Unityランタイムの複数のインスタンスのロードはサポートされていません。
- 正しく機能するために、サードパーティのプラグイン(ネイティブまたはマネージド)を適応させる必要がある場合があります。
使い方
全体的なビルドプロセスは同じです。UnityはiOSXcodeプロジェクトとAndroidGradleプロジェクトを作成しますが、この機能を有効にするために、生成されたiOSXcodeプロジェクトとAndroidGradleプロジェクトを変更し、次の構造になりました。
- すべてのソースとプラグインを含むライブラリパーツ(iOSフレームワークとAndroidアーカイブ(AAR)ファイル)
- アプリ表現データを含み、ライブラリを実行する薄いランチャーパーツ
ネイティブAndroidアプリのライブラリとしてのUnityの統合
必要に応じてAndroidライブラリパーツをネイティブアプリケーションに含める方法についてのステップバイステップの説明。
例:ネイティブAndroidアプリのライブラリとしてのIntegration Unity
ネイティブiOSアプリのライブラリとしてのUnityの統合
必要に応じてiOSライブラリの一部をネイティブアプリケーションに含める方法についてのステップバイステップの説明。
例:ネイティブiOSアプリのライブラリとしてのIntegration Unity
サンプルプロジェクトのソースコード