Kontrol alur session
Selama session berjalan, terkadang Anda perlu memodifikasi komponen session. Dalam hal ini, Anda perlu menghentikan lalu memulai ulang session. Terkadang Anda juga perlu menghentikan sebagian output session. Artikel ini menjelaskan cara mengontrol alur berjalan session.
Sebelum memulai
- Pelajari konsep dasar, komposisi, dan alur kerja session melalui Ikhtisar ARSession
- Pelajari cara membuat session
Perakitan session
Proses perakitan biasanya dipicu secara otomatis saat memulai session.
Kode berikut menjalankan proses perakitan secara implisit.
Session.StartSession();
Dalam beberapa kasus, misalnya saat perlu memeriksa ketersediaan dan dukungan perangkat terlebih dahulu, Anda juga dapat menggunakan Assemble() untuk memicu proses perakitan session secara manual:
StartCoroutine(Session.Assemble());
Catatan
Assemble() mengembalikan coroutine dan perlu dimulai melalui StartCoroutine(IEnumerator).
Memulai session
AutoStart mengontrol apakah session dimulai secara otomatis. Jika AutoStart adalah true (default), session akan dimulai otomatis pada MonoBehaviour.Start().
Session juga dapat dimulai secara manual. Ini memerlukan perubahan AutoStart menjadi false terlebih dahulu. Lalu Anda dapat menggunakan StartSession() untuk memulai session.
Session.StartSession();
Menghentikan session
Anda dapat menggunakan StopSession(bool) untuk menghentikan session.
Session.StopSession(keepLastFrame);
Parameter keepLastFrame mengontrol apakah gambar kamera fisik frame terakhir tetap dipertahankan setelah session berhenti. Ini berguna saat perlu beralih di antara session yang berbeda dan dapat menghindari layar berkedip.
Catatan
keepLastFrame hanya dapat mengontrol session yang rendering gambarnya dilakukan oleh EasyAR. Secara umum, parameter ini tidak berlaku saat menggunakan AR Foundation atau headset.
Menghentikan output session
Saat session berjalan, Anda dapat mengontrol output session melalui enabled.
Kode berikut dapat menghentikan semua output session. Pada saat ini session masih berjalan, tetapi tidak ada konten yang diperbarui, termasuk gambar kamera fisik yang dirender oleh EasyAR dan transform semua node yang dikontrol EasyAR.
Session.enabled = false;
Menghentikan rendering gambar kamera fisik oleh session
Anda dapat menggunakan ARAssembly.CameraImageRenderer untuk mengontrol rendering gambar kamera fisik.
Kode berikut dapat menghentikan rendering gambar kamera fisik:
if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
Session.Assembly.CameraImageRenderer.Value.enabled = false;
}
Perlu diperhatikan bahwa Anda harus terlebih dahulu memeriksa apakah ARAssembly.CameraImageRenderer ada.
Catatan
ARAssembly.CameraImageRenderer hanya valid pada session yang rendering gambarnya dilakukan oleh EasyAR. Secara umum, ini tidak berlaku saat menggunakan AR Foundation atau headset. Dalam hal ini, rendering gambar kamera fisik dilakukan oleh AR Foundation atau SDK headset.
Langkah berikutnya
- Coba mengakses komponen fitur AR untuk mempelajari lebih banyak metode kontrol fitur AR
- Pelajari cara mendapatkan hasil berjalan session
- Pelajari cara memeriksa ketersediaan dan dukungan perangkat