Unity 向け Jetpack Window Manager
Jetpack Window Manager は、Unity プロジェクトに含めることができるパッケージとして使用できます。 gradle ビルド システムをカスタマイズし、カスタム基本アクティビティ クラスを実装してから、ネイティブ Java API を呼び出す C# ヘルパー クラスを追加します。
折りたたみ式およびデュアルスクリーン API
WindowManagerHelper.cs コードは、Jetpack Window Manager によって提供される情報を公開する次のメソッドを提供します。
WindowManagerHelper.GetCurrentWindowMetricsBounds
. アプリケーションが占有する領域全体の境界 (左、上、幅、高さ)。WindowManagerHelper.IsSeparating
. 折りたたみ機能が画面領域を分離しているかどうか。 これは常TRUE
に Surface Duo にあります。TRUE
他の折りたたみ可能なデバイスでは、折りたたまれたときにだけ、FALSE
フラットな場合にのみ使用できます。WindowManagerHelper.Orientation
. 折りたたみ機能の向き (存在する場合)。HORIZONTAL
またはVERTICAL
。WindowManagerHelper.OcclusionType
. 折りたたみ機能がコンテンツを隠すかどうか。FULL
またはNONE
。WindowManagerHelper.State
. フォールドの状態。FLAT
またはHALF_OPEN
。WindowManagerHelper.Bounds
. 折りたたみフィーチャーの境界 (左、上、幅、高さ) (存在する場合)。
Jetpack Window Manager パッケージのデバイス情報を示す API デモ サンプル のスクリーンショットを次に示します。
Unity で Jetpack ウィンドウ マネージャーを実装する
Android アプリのビルド構成をカスタマイズし、Jetpack Window Manager を実装するには、次の手順に従います。 このサンプルのコードを確認することもできます。
Unity で、[編集Project 設定>..] に移動します。>プレーヤー>(Android)>発行設定し、次のビルド オプションを選択します。
この手順では、プロジェクトの Assets/Plugins/Android に新しい項目を配置します。この項目は、Window Manager パッケージをサポートするようにカスタマイズされます。
次の依存関係を追加して、プロジェクトに Jetpack ウィンドウ マネージャーを含むように mainTemplate.gradle を更新します。
dependencies { implementation "androidx.window:window:1.0.0" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61" implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.core:core-ktx:1.3.2' }
次の行を追加して gradleTemplate.properties ファイルを更新します。
android.useAndroidX = true
アプリには、ウィンドウ マネージャー機能を実装し、C# に情報を公開するためのカスタム アクティビティが必要です。 同じフォルダー Assets/Plugins/Android に FoldablePlayerActivity.java ファイルを作成し、新しいクラスを参照するようにAndroidManifest.xmlを更新します。
<activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
GitHubの FoldablePlayerActivity.java から完全なクラスを追加します。
WindowManagerHelper.cs ヘルパー クラスをGitHubからプロジェクトにコピーします。 このフォルダーは 、サンプルの Assets/SurfaceDuo/Plugins です。
Assets/Plugins/Android には、上記の手順でカスタマイズされたこれらの項目が含まれるようになりました。
WindowManagerHelper.cs ファイルはサンプルの Assets/SurfaceDuo/Plugins フォルダーにありますが、このヘルパー クラスはゲーム コード内の任意の場所に配置できます。
折りたたみ機能の存在に基づいてレイアウトの変更を実装したら、Surface Duo や Jetpack Window Manager をサポートする他の折りたたみ可能なデバイスでゲームをテストできます。
次の手順
これらの サンプルを確認します。