Beralih otomatis Unity XR object dalam scene Unity
Komponen XR Unity (termasuk AR Foundation) memiliki dukungan perangkat yang terbatas. Agar AR Foundation dapat digunakan pada perangkat yang didukung, sekaligus tetap menyediakan fungsi AR pada banyak perangkat lain, EasyAR menyediakan fungsi untuk beralih otomatis Unity XR object. Konten berikut menjelaskan perubahan fungsi ini pada scene object dan cara menggunakannya.
Sebelum memulai
- Baca dukungan EasyAR untuk framework Unity XR untuk memahami dukungan EasyAR terhadap framework Unity XR dan kapan Anda dapat mempertimbangkan penggunaan AR Foundation.
- Pastikan scene telah menambahkan ARSession dan XROrigin dari AR Foundation sesuai dengan konfigurasi scene AR Foundation dan penggunaannya dalam project EasyAR.
Pengenalan fungsi
Karena implementasi dasar AR Foundation Unity pada ponsel adalah ARCore dan ARKit, fungsi ini hanya dapat digunakan pada perangkat terbatas, terutama tidak dapat digunakan pada banyak ponsel Android domestik Tiongkok. Oleh karena itu, biasanya disarankan untuk mengaktifkan AR Foundation dan script fungsi terkait hanya pada perangkat yang didukung. Fungsi beralih otomatis Unity XR object menerapkan operasi tersebut, terutama dirancang untuk mobile AR, dan pada headset fungsi ini dinonaktifkan dalam konfigurasi default.
Ketika fungsi lengkap diaktifkan,
- Di editor, easyar.ARSession akan menonaktifkan UnityEngine.XR.ARFoundation.ARSession
- Saat runtime, easyar.ARSession akan menonaktifkan semua komponen Unity XR Core dan komponen AR Foundation saat Awake().
- Saat runtime, jika FrameSource yang dipilih mewarisi ARFoundationFrameSource atau merupakan ExternalDeviceFrameSource yang mengimplementasikan origin XROrigin, maka komponen Unity XR Core dan AR Foundation yang dinonaktifkan akan diaktifkan saat easyar.ARSession.StartSession() (komponen yang tidak dinonaktifkan oleh EasyAR tidak akan diaktifkan). Jika FrameSource lain dipilih, semua komponen Unity XR Core dan AR Foundation akan dinonaktifkan saat easyar.ARSession.StartSession().
- Saat runtime, semua komponen Unity XR Core dan AR Foundation akan dinonaktifkan saat easyar.ARSession.StopSession(bool).
Dalam konfigurasi default, kondisi pengaktifan fungsi adalah sebagai berikut,
- Diaktifkan pada Windows/Mac.
- Saat switcher dimulai, jika loader mobile AR (ARKit/ARCore) aktif, fungsi diaktifkan.
- Saat switcher dimulai, jika ada loader lain selain mobile AR (ARKit/ARCore), tetapi tidak ada loader yang aktif, fungsi dinonaktifkan.
Catatan
Komponen XR Interaction Toolkit tidak dikontrol oleh fungsi ini, dan apakah komponen tersebut tersedia di EasyAR belum diverifikasi. Secara teori, fungsi yang hanya menggunakan GameObject Unity.XR.CoreUtils.XROrigin dan Camera-nya seharusnya dapat digunakan secara normal. Jika perilaku tidak normal, Anda dapat mencoba mengatur ARSession.ARCenterMode ke ARSession.ARCenterMode.SessionOrigin. Jika fungsi masih tidak normal, Anda perlu mengimplementasikan kontrol komponen XR Interaction Toolkit khusus, dan menonaktifkan komponen terkait ketika FrameSource tidak mewarisi ARFoundationFrameSource.
Cara konfigurasi
Fungsi ini dapat diaktifkan atau dinonaktifkan melalui opsi Unity XR > Unity XR Auto Switch di Project Settings > EasyAR > Sense.

Perilaku fungsi dari opsi pada gambar adalah sebagai berikut:
- Editor: opsi edit mode
- Disable AR Session: ketika easyar.ARSession ada, nonaktifkan UnityEngine.XR.ARFoundation.ARSession saat editing.
- Player: opsi runtime mode
- Enable: aktifkan kontrol runtime. Catatan: ketika opsi ini dimatikan, komponen yang dinonaktifkan dalam edit mode tidak akan dipulihkan saat runtime.
- Enable If Desktop: aktifkan pada Windows/Mac.
- Enable If Mobile AR On Startup: saat switcher dimulai, jika loader mobile AR (ARKit/ARCore) aktif, fungsi diaktifkan. Biasanya opsi ini memerlukan
Initialize XR on StartupdiProject Settings>XR Plug-in Managementdalam keadaan tercentang. - Disable If Non Mobile AR Post Startup: saat switcher dimulai, jika ada loader lain selain mobile AR (ARKit/ARCore), tetapi tidak ada loader yang aktif, fungsi dinonaktifkan. Biasanya opsi ini digunakan ketika
Initialize XR on StartupdiProject Settings>XR Plug-in Managementtidak dicentang. - Restore AR Session When Disabled: ketika fungsi dinonaktifkan, pulihkan (aktifkan) semua UnityEngine.XR.ARFoundation.ARSession yang dinonaktifkan (terlepas dari apakah komponen itu dinonaktifkan oleh EasyAR). Opsi ini biasanya digunakan untuk memulihkan komponen yang dinonaktifkan saat editing.
Menggunakan metode kontrol khusus
Jika perlu menyesuaikan switching komponen ini, atau perilaku EasyAR mengganggu kerja normal komponen tertentu, pastikan opsi-opsi ini dimatikan, lalu sesuaikan switching komponen berdasarkan aturan dasar berikut:
- Nonaktifkan UnityEngine.XR.ARFoundation.ARSession di editor (urutan eksekusinya lebih awal daripada semua script lain)
- Sebelum AR Foundation mulai bekerja, nonaktifkan semua komponen Unity XR Core dan AR Foundation serta komponen atau fungsi terkait yang perlu dikontrol
- Jika ARCoreARFoundationFrameSource atau ARKitARFoundationFrameSource dipilih selama proses easyar.ARSession.Assemble(), aktifkan semua komponen atau fungsi yang sebelumnya dinonaktifkan sebelum StartSession() selesai; biasanya disarankan melakukannya dalam respons event easyar.ARSession.AssembleUpdate
- Jika FrameSource lain dipilih selama proses easyar.ARSession.Assemble(), biarkan tetap tidak berubah