Jetpack Window Manager untuk Unity
Jetpack Window Manager tersedia sebagai paket yang dapat disertakan dalam proyek Unity Anda. Sesuaikan sistem build gradle dan terapkan kelas aktivitas dasar kustom, lalu tambahkan kelas pembantu C# yang memanggil Java API asli.
API yang dapat dilipat dan layar ganda
Kode WindowManagerHelper.cs menyediakan metode ini yang mengekspos informasi yang disediakan oleh Jetpack Window Manager:
WindowManagerHelper.GetCurrentWindowMetricsBounds
. Batas (kiri, atas, lebar, tinggi) dari seluruh area yang ditempati aplikasi.WindowManagerHelper.IsSeparating
. Apakah fitur lipat memisahkan area layar. Ini selaluTRUE
ada di Surface Duo. Ini adaTRUE
di beberapa perangkat lain yang dapat dilipat hanya ketika dilipat tetapiFALSE
ketika datar.WindowManagerHelper.Orientation
. Orientasi fitur lipatan, jika ada.HORIZONTAL
atauVERTICAL
.WindowManagerHelper.OcclusionType
. Apakah fitur lipat mengaburkan konten.FULL
atauNONE
.WindowManagerHelper.State
. Keadaan lipatan.FLAT
atauHALF_OPEN
.WindowManagerHelper.Bounds
. Batas (kiri, atas, lebar, tinggi) fitur lipatan, jika ada.
Berikut adalah cuplikan layar sampel demonstrasi API yang menunjukkan informasi perangkat dari paket Jetpack Window Manager:
Menerapkan Jetpack Window Manager di Unity
Ikuti langkah-langkah ini untuk menyesuaikan konfigurasi build aplikasi Android Anda dan menerapkan Jetpack Window Manager. Anda juga dapat meninjau kode dalam sampel ini.
Di Unity, buka Edit>Pengaturan Proyek...>Pemain>(Android)>Pengaturan Penerbitan dan pilih opsi Build ini:
Langkah ini menempatkan item baru di Aset/Plugin/Android proyek, yang kemudian disesuaikan untuk mendukung paket Window Manager.
Perbarui mainTemplate.gradle untuk menyertakan Jetpack Window Manager dalam proyek, dengan menambahkan dependensi berikut:
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' }
Perbarui file gradleTemplate.properties dengan menambahkan baris berikut:
android.useAndroidX = true
Aplikasi ini memerlukan aktivitas kustom untuk mengimplementasikan fungsionalitas manajer jendela dan mengekspos informasi ke C#. Buat file FoldablePlayerActivity.java di folder yang sama Aset/Plugin/Android, lalu perbarui AndroidManifest.xml untuk mereferensikan kelas baru:
<activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
Tambahkan kelas lengkap dari FoldablePlayerActivity.java di GitHub.
Salin kelas pembantu WindowManagerHelper.cs dari GitHub ke dalam proyek. Folder ini adalah Aset/SurfaceDuo/Plugins dalam sampel.
Aset/Plugin/Android sekarang berisi item-item ini, disesuaikan pada langkah-langkah di atas:
File WindowManagerHelper.cs ada di folder Aset/SurfaceDuo/Plugins dalam sampel, tetapi kelas pembantu ini dapat ditemukan di mana saja dalam kode game Anda.
Setelah menerapkan perubahan tata letak berdasarkan adanya fitur lipat, Anda dapat menguji game di Surface Duo dan perangkat lain yang dapat dilipat yang mendukung Jetpack Window Manager.
Langkah berikutnya
Tinjau sampel ini.