Primeiro, eu tenho o Unity Pro.
Tenho procurado ocultar as luzes quando elas não estão sendo visualizadas por um tempo agora para melhorar o desempenho. Os métodos principais para os quais me deparei foram usar BecameVisible () e testar o perfil da câmera.
Meu principal problema era que, se o player estivesse visualizando uma área que seria iluminada pela luz, eu ainda quero que a luz acenda.
Atualmente, estou usando um método que verifica se a área iluminada está no frustum da câmera, mas o problema é que algumas vezes as luzes estão no frustum sem realmente serem visíveis pelo jogador (por exemplo, uma parede entre eles e o player). Eu tentei fazer o raycasting para eles, mas você nunca pode obter detalhes suficientes para a área iluminada real (o melhor que pude imaginar foi usar renderer.bounds.extent e renderer.bounds.center para calcular o máximo de pontos iluminados da luz).
Alguém conhece uma maneira fácil no Unity Pro de ocultar luzes? Ou você poderia me dizer uma boa maneira de usar o método de ponto de apoio de câmera que eu estava falando?
fonte
Respostas:
Você pode escrever seu próprio script para ocultar as luzes. Algo assim anexado à câmera principal:
Você também pode verificar se o ponto está dentro de um ângulo no eixo Y da câmera (os outros eixos apenas causam dor). Seja um pouco generoso com o ângulo, talvez duas vezes o frustração da câmera, para que as luzes não se apaguem quando estiverem iluminando áreas dentro da visão da câmera. Se você optar por adicionar essa otimização adicional (que provavelmente não será necessária), certifique-se de usar a distância como fase larga, porque é muito menos dispendioso.
fonte