Table of Contents

Session flow control

Dalam operasi session, terkadang perlu memodifikasi komponen session, yang memerlukan penghentian dan restart session. Terkadang mungkin juga perlu menghentikan beberapa output session. Artikel ini menjelaskan cara mengontrol aliran operasi session.

Sebelum memulai

Perakitan session

Biasanya proses perakitan akan dipicu secara otomatis saat memulai session.

Kode berikut akan menjalankan proses perakitan secara implisit.

Session.StartSession();

Terkadang, seperti untuk menilai ketersediaan dan dukungan perangkat lebih awal, Anda juga dapat menggunakan Assemble() untuk memicu proses perakitan session secara manual:

StartCoroutine(Session.Assemble());
Catatan

Assemble() mengembalikan sebuah coroutine, yang perlu dimulai melalui StartCoroutine(IEnumerator).

Memulai session

AutoStart mengontrol apakah session dimulai secara otomatis. Jika AutoStart adalah true (nilai default), session akan mulai secara otomatis saat MonoBehaviour.Start().

Session juga dapat dimulai secara manual, yang memerlukan pengubahan AutoStart menjadi false terlebih dahulu. Kemudian Anda dapat menggunakan StartSession() untuk memulai session.

Session.StartSession();

Menghentikan session

Anda dapat menggunakan StopSession(bool) untuk menghentikan session.

Session.StopSession(keepLastFrame);

Parameter keepLastFrame dapat mengontrol apakah gambar fisik kamera terakhir dipertahankan setelah session dihentikan. Ini berguna saat perlu beralih antar session yang berbeda, untuk menghindari kedipan layar.

Catatan

keepLastFrame hanya dapat mengontrol session yang gambarannya dirender 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. Saat ini session masih berjalan, tetapi tidak akan memperbarui konten apa pun (termasuk gambar fisik kamera yang dirender oleh EasyAR dan semua transform node yang dikendalikan oleh EasyAR).

Session.enabled = false;

Menghentikan rendering gambar fisik kamera oleh session

Anda dapat menggunakan ARAssembly.CameraImageRenderer untuk mengontrol rendering gambar fisik kamera.

Kode berikut dapat menghentikan rendering gambar fisik kamera:

if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
    Session.Assembly.CameraImageRenderer.Value.enabled = false;
}

Perlu diperhatikan bahwa perlu memeriksa keberadaan ARAssembly.CameraImageRenderer terlebih dahulu.

Catatan

ARAssembly.CameraImageRenderer hanya berlaku untuk session yang gambarannya dirender oleh EasyAR. Secara umum, ini tidak berlaku saat menggunakan AR Foundation atau headset, karena rendering gambar fisik kamera dilakukan oleh SDK AR Foundation atau headset.

Langkah selanjutnya