Cursor locking (menggunakan Cursor.lockState) dan mode layar penuh (menggunakan Screen.fullScreen) keduanya didukung dalam Unity WebGLLogin API yang membuat grafis 2D dan 3D di browser web. Opsi build Unity WebGL memungkinkan Unity untuk mempublikasikan konten sebagai program JavaScript yang menggunakan teknologi HTML5 dan WebGL rendering API untuk menjalankan konten Unity di browser web. More info
Lihat di Glossary, diimplementasikan menggunakan API HTML5 masing-masing (Element.requestPointerLock dan Element.requestFullscreen). Ini didukung di Firefox dan Chrome. Safari saat ini tidak dapat menggunakan penguncian full-screen dan kursor.
Karena masalah keamanan, browser hanya akan memungkinkan mengunci kursor atau masuk ke mode layar penuh dalam respons langsung ke acara yang diiniti pengguna (seperti klik mouse atau tekan tombol). Sayangnya, Unity tidak memiliki acara terpisah dan rendering loop, sehingga itu defers acara penanganan ke titik di mana browser tidak lagi mengakui permintaan kunci layar penuh atau kursor yang dikeluarkan dari skrip Unity sebagai respons langsung ke acara yang memicunya. Akibatnya, Unity memicu permintaan pada acara yang diiniti pengguna berikutnya, daripada acara yang memicu kunci kursor atau permintaan penuh.
Untuk membuat pekerjaan ini dengan hasil yang dapat diterima, Anda harus memicu pengunci kursor atau permintaan layar penuh pada acara mouse/key down, bukan acara mouse/key up. Ini memastikan bahwa ketika permintaan dinonaktifkan ke acara yang diiniti pengguna berikutnya, dipicu ketika pengguna melepaskan mouse atau kunci.
Gunakan komponen Unity untuk mencapai perilaku yang diinginkan dengan membuat subclass dari Button
, yang menimpa metode OnPointerDown
.
Perhatikan bahwa browser dapat menunjukkan pesan pemberitahuan atau meminta pengguna untuk izin sebelum memasukkan mode layar penuh atau mengunci kursor.