Table of Contents

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

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