Pengalihan otomatis objek Unity XR dalam adegan Unity
Komponen XR Unity (termasuk AR Foundation) memiliki dukungan perangkat yang terbatas. Untuk menggunakan AR Foundation pada perangkat yang didukung sambil mempertahankan fungsionalitas AR di banyak perangkat lain, EasyAR menyediakan fitur pengalihan otomatis objek Unity XR. Konten berikut menjelaskan modifikasi objek adegan dan metode penggunaan fitur ini.
Sebelum memulai
- Baca Dukungan EasyAR untuk kerangka kerja Unity XR untuk memahami dukungan EasyAR terhadap kerangka kerja Unity XR, dan kapan AR Foundation dapat dipertimbangkan.
- Pastikan adegan telah dikonfigurasi seperti dijelaskan dalam Konfigurasi dan penggunaan adegan AR Foundation dalam proyek EasyAR, dengan menambahkan ARSession dan XROrigin dari AR Foundation.
Fitur
Karena implementasi dasar AR Foundation Unity di ponsel adalah ARCore dan ARKit, yang hanya dapat digunakan pada perangkat terbatas, terutama di banyak ponsel Android China yang tidak mendukung, umumnya disarankan untuk mengaktifkan AR Foundation dan skrip fungsional terkait hanya pada perangkat yang didukung. Fitur pengalihan otomatis objek Unity XR mengimplementasikan operasi di atas, terutama dirancang untuk AR seluler, dan akan dinonaktifkan secara default di headset.
Saat fitur lengkap diaktifkan,
- Di editor, easyar.ARSession akan menonaktifkan UnityEngine.XR.ARFoundation.ARSession
- Saat runtime, easyar.ARSession akan menonaktifkan semua komponen inti Unity XR dan komponen AR Foundation selama Awake().
- Saat runtime, jika FrameSource yang dipilih mewarisi dari ARFoundationFrameSource atau merupakan ExternalDeviceFrameSource yang mengimplementasikan titik asal XROrigin, maka komponen inti Unity XR dan komponen AR Foundation yang dinonaktifkan akan diaktifkan selama easyar.ARSession.StartSession() (yang tidak dinonaktifkan oleh EasyAR tidak akan diaktifkan). Jika FrameSource lain dipilih, semua komponen inti Unity XR dan komponen AR Foundation akan dinonaktifkan selama easyar.ARSession.StartSession().
- Saat runtime, semua komponen inti Unity XR dan komponen AR Foundation akan dinonaktifkan selama easyar.ARSession.StopSession(bool).
Dalam konfigurasi default, fitur diaktifkan berdasarkan kondisi berikut,
- Diaktifkan di Windows/Mac.
- Diaktifkan jika loader AR seluler (ARKit/ARCore) aktif saat switcher dimulai.
- Dinonaktifkan jika ada loader selain AR seluler (ARKit/ARCore) saat switcher dimulai, tetapi tidak ada loader yang aktif.
Catatan
Komponen XR Interaction Toolkit tidak dikendalikan oleh fitur ini, tetapi ketersediaannya di EasyAR belum divalidasi. Secara teori, fitur yang hanya menggunakan GameObject Unity.XR.CoreUtils.XROrigin dan Kameranya seharusnya berfungsi normal. Jika terjadi perilaku tidak normal, coba atur ARSession.ARCenterMode ke ARSession.ARCenterMode.SessionOrigin. Jika masih tidak berfungsi, perlu diimplementasikan kontrol komponen XR Interaction Toolkit kustom, dengan menonaktifkan komponen terkait saat FrameSource bukan turunan dari ARFoundationFrameSource.
Metode konfigurasi
Fitur ini dapat diaktifkan atau dimatikan melalui opsi di Project Settings > EasyAR > Sense > Unity XR > Unity XR Auto Switch.

Opsi pada gambar mengonfigurasi perilaku fitur sebagai berikut:
- Editor: Opsi mode edit
- Disable AR Session: Menonaktifkan UnityEngine.XR.ARFoundation.ARSession saat mengedit jika ada easyar.ARSession.
- Player: Opsi mode runtime
- Enable: Mengaktifkan kontrol runtime. Catatan: Saat opsi ini dimatikan, komponen yang dinonaktifkan dalam mode edit tidak akan dipulihkan saat runtime.
- Enable If Desktop: Diaktifkan di Windows/Mac.
- Enable If Mobile AR On Startup: Diaktifkan jika loader AR seluler (ARKit/ARCore) aktif saat switcher dimulai. Biasanya opsi ini memerlukan
Initialize XR on StartupdiProject Settings>XR Plug-in Managementdicentang. - Disable If Non Mobile AR Post Startup: Dinonaktifkan jika ada loader selain AR seluler (ARKit/ARCore) saat switcher dimulai, tetapi tidak ada loader yang aktif. Biasanya opsi ini digunakan saat
Initialize XR on StartupdiProject Settings>XR Plug-in Managementtidak dicentang. - Restore AR Session When Disabled: Saat fitur dinonaktifkan, memulihkan (mengaktifkan) semua UnityEngine.XR.ARFoundation.ARSession yang dinonaktifkan (terlepas dari apakah dinonaktifkan oleh EasyAR atau tidak). Opsi ini biasanya digunakan untuk memulihkan komponen yang dinonaktifkan saat mengedit.
Menggunakan metode kontrol kustom
Jika perlu menyesuaikan pengalihan komponen ini, atau perilaku EasyAR mengganggu kerja beberapa komponen, pastikan untuk menutup opsi ini, sambil menyesuaikan pengalihan komponen kustom berdasarkan aturan dasar berikut:
- Nonaktifkan UnityEngine.XR.ARFoundation.ARSession di editor (dieksekusi lebih awal dari semua skrip lain)
- Nonaktifkan semua komponen inti Unity XR, komponen AR Foundation, serta komponen atau fungsi terkait yang perlu dikontrol sebelum AR Foundation mulai bekerja
- Jika ARCoreARFoundationFrameSource atau ARKitARFoundationFrameSource dipilih selama proses easyar.ARSession.Assemble(), aktifkan semua komponen atau fungsi yang sebelumnya dinonaktifkan sebelum StartSession() selesai, biasanya disarankan untuk diselesaikan dalam respons peristiwa easyar.ARSession.AssembleUpdate
- Jika FrameSource lain digunakan selama proses easyar.ARSession.Assemble(), biarkan tidak berubah