Jadikan game Unity Anda bagus di semua faktor bentuk

Di pasar game yang kompetitif saat ini, menjangkau audiens seluas mungkin menjadi semakin penting. Dengan mengembangkan game untuk berbagai faktor bentuk, seperti ponsel, tablet, perangkat foldable, dan desktop, Anda dapat menjangkau kumpulan calon pemain yang lebih besar dan meningkatkan peluang kesuksesan.

Mendukung kemampuan mengubah ukuran layar

Untuk mendukung berbagai faktor bentuk, game Anda harus dapat diubah ukurannya. Kemampuan mengubah ukuran memungkinkan game Anda mendukung konfigurasi perangkat seperti orientasi potret dan lanskap, mode multi-aplikasi, serta status terlipat dan terbentang perangkat foldable.

Jika game Anda tidak mendukung semua ukuran jendela dan konfigurasi orientasi, tampilan lebar platform akan memberi game Anda dalam mode kompatibilitas dan, jika perlu, akan meminta pemain sebelum mengubah ke konfigurasi yang tidak didukung.

Gambar 1. Dialog kompatibilitas konfigurasi.

Untuk mengetahui informasi selengkapnya, lihat Mendukung perubahan ukuran layar besar.

Mode multi-aplikasi

Gambar 2. UI yang berbeda di desktop dan perangkat foldable dalam postur mode di atas meja.

Mode multi-aplikasi memungkinkan beberapa aplikasi berbagi layar yang sama secara bersamaan. Aplikasi dapat berdampingan atau satu di atas yang lain (mode layar terpisah), satu aplikasi di jendela kecil yang menempatkan aplikasi lain (mode picture-in-picture), atau masing-masing aplikasi dalam jendela terpisah yang dapat dipindahkan dan dapat diubah ukurannya (mode bentuk bebas).

Agar tidak masuk ke mode kompatibilitas saat game berjalan dalam mode multi-aplikasi, deklarasikan bahwa game Anda dapat menangani perubahan ukuran dengan mengaktifkan opsi Jendela yang Dapat Diubah Ukurannya di setelan build Unity.

Gambar 3. Setelan Resolusi dan Presentasi Unity untuk Android.

Potongan layar

Potongan layar adalah area di beberapa perangkat yang meluas ke permukaan tampilan. Potongan memungkinkan pengalaman dari tepi ke tepi sekaligus menyediakan ruang untuk sensor penting di bagian depan perangkat.

Gambar 4. Potongan layar.

Untuk menghadirkan pengalaman dari tepi ke tepi pada game Anda, konfigurasikan game agar mengetahui frame yang aman. Buat kueri safeArea API Unity untuk mendapatkan area layar yang aman dalam piksel serta sesuaikan UI dan UX game Anda sebagaimana mestinya, terutama untuk elemen yang dapat berinteraksi dengan pengguna.

Postur perangkat foldable

Perangkat foldable dapat berada dalam berbagai status terlipat, seperti FLAT (terbuka sepenuhnya) atau HALF_OPENED (di antara terbuka sepenuhnya dan tertutup sepenuhnya). Saat perangkat dalam status HALF_OPENED, dua postur dapat dilakukan, bergantung pada orientasi lipatan: postur mode di atas meja (lipatan horizontal) dan postur buku (lipatan vertikal). Gunakan postur mode di atas meja untuk meningkatkan keterlibatan dan interaksi pemain.

Gambar 5. Game dalam postur mode di atas meja dengan tampilan utama di bagian vertikal layar, kontrol di bagian horizontal.

Untuk menerapkan postur mode di atas meja, perluas aktivitas Unity default, lalu gunakan library tata letak Jetpack WindowManager untuk membuat game Anda fold aware.

Project contoh Unity

Project contoh Unity didasarkan pada project demonstrasi 2D Unity, Lost Crypt. Project contoh menunjukkan cara mendukung perubahan ukuran layar besar di Unity. Dukungan perangkat layar besar dan perangkat foldable memerlukan sejumlah perubahan pada opsi build Unity, serta pertimbangan dalam tata letak kamera dan kanvas UI.

Project contoh tersedia untuk didownload sekarang. Proyek ini berisi empat adegan yang berbeda:

  • Asli: Dukungan untuk fitur dasar yang dapat diubah ukurannya
  • Anchor: Sama seperti scene "Asli", tetapi beradaptasi dengan berbagai rasio aspek dan menghindari potongan layar
  • HingeAware: Sama seperti scene "Anchoring, tetapi mendukung postur mode di atas meja
  • Menu utama: Adegan awal, memungkinkan navigasi ke scene lain dan sepenuhnya mendukung semua orientasi perangkat, tindakan melipat, membentangkan, dan postur di atas meja

Saat membangun untuk Android, pilih semua scene dan setel scene "Mainmenu" sebagai scene awal.

Gambar 6. Adegan "Menu utama" memungkinkan Anda berpindah ke adegan lain, dalam postur mode di atas meja.

Mulai dengan dukungan jendela yang dapat diubah ukurannya

Terapkan dukungan untuk berbagai ukuran tampilan dan rasio aspek di aplikasi layar besar Android Anda untuk memastikan game atau aplikasi ditampilkan dengan benar di perangkat yang berbeda. Aktifkan game Anda untuk mengubah ukuran dan mengubah rasio aspek dengan menetapkan properti Jendela yang Dapat Diubah Ukurannya di setelan build Unity (lihat bagian "Mode Multi-aplikasi"). Sesuaikan rasio aspek kamera dan kanvas agar lebih sesuai dengan berbagai layar. Lihat setelan project di Build Settings dan dalam file Plugins/Android/AndroidManifest.xml. Nikmati fitur layar penuh yang dapat diubah ukurannya dalam scene "Asli" project.

Gambar 7. Adegan "Asli" mendukung fitur Jendela yang Dapat Diubah Ukurannya.

Gunakan layar penuh yang imersif saat menangani potongan layar

Buat game Anda dapat menggunakan seluruh layar untuk membuat gameplay yang imersif untuk pengalaman pengguna yang ditingkatkan. Perbarui setelan kamera dan anchor UI game Anda agar otomatis menyesuaikan dengan ukuran layar. Hal ini memungkinkan elemen UI mempertahankan posisinya relatif terhadap ukuran layar.

Scene "Anchoring" menggunakan skrip CameraAspectLock untuk merespons perubahan konfigurasi perangkat melalui aktivitas yang diperluas (lihat Assets/Plugins/Android/LargeScreenPlayableActivity.java). safeArea API Unity ditunjukkan dalam skrip SafeZoneAPI, yang terikat ke objek SafeZone di dalam scene "Anchoring".

Adegan game layar penuh di layar dalam dan luar perangkat foldable.
Gambar 8. Adegan "Anchoring" dengan potongan tampilan.

Mengoptimalkan aplikasi untuk perangkat foldable

Adegan terakhir dari project contoh Unity, "HingeAware", berisi objek ConfigurationManager yang merespons berbagai status lipat perangkat target melalui API library Jetpack dan aktivitas yang diperluas (lihat Assets/Plugins/Android/LargeScreenPlayableActivity.java). Scene ini menggunakan skrip PanelOnFold untuk mengontrol UI berdasarkan status lipatan perangkat, misalnya, menampilkan panel pengontrol bawah saat perangkat berada dalam mode di atas meja dan menyesuaikan kamera.

Gambar 9. Scene "HingeAware" mendukung postur mode di atas meja.