このページでは、Unity Runtime Library をライブラリ機能として Android アプリケーションに統合する方法を説明します。
この機能を使用して、3D/2D リアルタイムレンダリング、AR 体験、 3D モデルの相互作用、2D ミニゲームなどの Unity 搭載の機能をアプリケーションに埋め込むことができます。Unity Runtime Library は、 アプリケーション内でコンテンツをロード、アクティベート、アンロードするタイミングと方法を管理するためのコントロールへのアクセスを可能にします。
重要: プロジェクトに Unity as a Library を導入すると、Android で正しく動作するようにネイティブとマネージのプラグインを調整する必要がある場合があります。Gradle マニフェストに変更を加えるプラグインは、Using Unity as a library in native iOS/Android apps で概説されている Gradle の変更を使用する必要があります。
Unity から Gradle プロジェクトをビルドする場合は、特になにも変更する必要はありません。
Unity が生成するすべての Android Gradle プロジェクトの構造は以下のとおりです。
Unity を別の Android Gradle プロジェクトに統合するには、settings.gradle ファイルを使用して、生成された Android Gradle プロジェクトの unityLibrary モジュールを Android Unity プロジェクトに加える必要があります。
このリポジトリには、Unity を Android アプリケーションに統合する方法を示すサンプルプロジェクト、プラグイン、ドキュメントが含まれています。
プレイヤーをコントロールするには、インテントを継承して Unity のアクティビティを起動し、必要に応じて拡張します。詳細は、Android 開発者ドキュメントのインテントとインテント フィルタを参照してください。UnityPlayer Java API を使用することもできます。
IUnityPlayerLifecycleEvents は Unity Player の 2 つの重要なライフサイクルイベントと相互作用する方法を提供します。
Application.Unload または UnityPlayer.unload() が Unity Player をアンロードするときに、アプリケーションが IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded を呼び出します。これにより、Unity Player は一時停止の状態になり、すべてのシーンがアンロードされますが、他のすべてのシーンはメモリにロードされたままになります。IUnityPlayerLifecycleEvents.onUnityPlayerQuitted を呼び出します。Unity を実行していたプロセスは、この呼び出しの後に終了します。
IUnityPlayerLifecycleEvents のインスタンスを UnityPlayer コンストラクターに渡すことができます。または UnityPlayer と UnityPlayerActivity のサブクラスのメソッドをオーバーライドすることもできます。
Unity はランタイムのライフサイクルをコントロールしないため、ライブラリとしての Unity はすべてのシナリオで機能するわけではありません。既知の制限は以下のとおりです。