Pertama, saya memiliki Unity Pro.
Saya sudah mencari-cari di lampu oklusi ketika mereka tidak dilihat untuk sementara waktu sekarang untuk meningkatkan kinerja. Metode utama yang saya gunakan adalah menggunakan BecameVisible () dan menguji frustrasi kamera.
Masalah utama saya adalah jika pemain melihat area yang akan diterangi oleh cahaya, saya masih ingin lampu menyala.
Saat ini saya menggunakan metode yang memeriksa untuk melihat apakah area yang menyala di dalam frustum kamera, tetapi masalahnya adalah kadang-kadang lampu berada di frustum tanpa benar-benar terlihat oleh pemain (misalnya dinding di antara mereka dan pemain). Saya sudah mencoba raycasting kepada mereka tetapi Anda tidak pernah bisa mendapatkan cukup detail untuk area yang sebenarnya menyala (yang terbaik yang saya bisa pikirkan adalah menggunakan renderer.bounds.extent dan renderer.bounds.center untuk menghitung titik menyala maksimum dari cahaya).
Adakah yang tahu cara mudah di Unity Pro untuk menutup lampu? Atau bisakah Anda memberi tahu saya cara yang baik untuk menggunakan metode titik tumpu kamera yang saya bicarakan?
sumber
Jawaban:
Anda dapat menulis skrip Anda sendiri untuk menutup lampu. Sesuatu seperti ini melekat pada kamera utama:
Anda juga dapat memeriksa apakah titik berada dalam sudut pada sumbu Y kamera (sumbu lainnya hanya akan membuat Anda sakit). Jadilah sedikit murah hati dengan sudut, mungkin 2 kali frustrasi kamera, sehingga lampu tidak mati ketika mereka sedang menerangi area dalam tampilan kamera. Jika Anda memilih untuk menambahkan optimasi tambahan ini (yang mungkin tidak diperlukan), pastikan Anda menggunakan jarak sebagai broadphase karena jauh lebih murah.
sumber