Titik fokus di Unity

Namespace:UnityEngine.XR.WSA
Jenis: HolographicSettings

Gunakan titik fokus untuk memberi HoloLens petunjuk tentang cara terbaik menstabilkan hologram yang saat ini ditampilkan.

Jika Anda ingin mengatur Titik Fokus di Unity, itu perlu diatur setiap bingkai menggunakan HolographicSettings.SetFocusPointForFrame(). Saat Titik Fokus tidak diatur untuk bingkai, bidang stabilisasi default digunakan.

Catatan

Secara default, proyek Unity baru memiliki opsi "Aktifkan Berbagi Buffer Kedalaman". Dengan opsi ini, aplikasi Unity yang berjalan pada headset desktop imersif atau HoloLens yang menjalankan Pembaruan Windows 10 April 2018 (RS4) atau yang lebih baru akan mengirimkan buffer kedalaman Anda ke Windows untuk mengoptimalkan stabilitas hologram secara otomatis, tanpa aplikasi Anda menentukan titik fokus:

  • Pada headset desktop imersif, ini akan memungkinkan proyeksi ulang berbasis kedalaman per piksel.
  • Pada HoloLens yang menjalankan pembaruan Windows 10 April 2018 atau yang lebih baru, ini akan menganalisis buffer kedalaman untuk memilih bidang stabilisasi yang optimal secara otomatis.

Salah satu pendekatan harus memberikan kualitas gambar yang lebih baik tanpa pekerjaan eksplisit oleh aplikasi Anda untuk memilih titik fokus untuk setiap bingkai. Perhatikan bahwa jika Anda memberikan titik fokus secara manual, yang akan mengambil alih perilaku otomatis yang dijelaskan di atas, dan biasanya akan mengurangi stabilitas hologram. Umumnya, Anda hanya boleh menentukan titik fokus manual saat aplikasi Anda berjalan pada HoloLens yang belum diperbarui ke Pembaruan Windows 10 April 2018.

Contoh

Ada banyak cara untuk mengatur Titik Fokus, seperti yang disarankan oleh kelebihan beban yang tersedia pada fungsi statis SetFocusPointForFrame . Disajikan di bawah ini adalah contoh sederhana untuk mengatur bidang fokus ke objek yang disediakan untuk setiap bingkai:

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to
    // the normal of the plane and ensure the user does not pass through the
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

Catatan

Kode sederhana di atas dapat mengurangi stabilitas hologram jika objek yang berfokus berakhir di belakang pengguna. Kami umumnya merekomendasikan pengaturan Aktifkan Berbagi Buffer Kedalaman alih-alih menentukan titik fokus secara manual.

Titik Pemeriksaan Pengembangan Berikutnya

Jika Anda mengikuti perjalanan pengembangan Unity yang telah kami susun, Anda berada di tengah-tengah menjelajahi kemampuan platform dan API Mixed Reality. Dari sini, Anda dapat melanjutkan ke topik berikutnya:

Atau lompat langsung ke penyebaran aplikasi Anda di perangkat atau emulator:

Anda selalu dapat kembali ke titik pemeriksaan pengembangan Unity kapan saja.

Lihat juga