Descrição geral da luz de proximidade – MRTK3
A ProximityLight
é um paradigma Sistema Fluent Design que imita uma "luz inversa de gradação" que paira sobre a superfície de um objeto. É frequentemente utilizada para interações próximas. A aplicação pode controlar as propriedades de uma Luz de Proximidade através do ProximityLight
componente .
Para que um material seja influenciado por um ProximityLight
, tem de ser utilizado o sombreado Ferramentas de Gráficos/Ferramentas de Gráficosou Gráficos/Tela Padrão e a propriedade Luz de Proximidade tem de estar ativada. As Ferramentas de Gráficos/Ferramentas Não Baseadas em Telas/Frontplate e Ferramentas de Gráficos/Tela/Frontplate também são influenciadas por ProximityLight
s, mas de uma forma ligeiramente diferente.
Nota
Por predefinição, são suportados até dois ProximityLight
s.
Utilização avançada
Por predefinição, apenas dois ProximityLight
s podem iluminar um material de cada vez. Se o seu projeto precisar de mais de dois ProximityLight
s para influenciar um material, o código de exemplo abaixo demonstra como o conseguir nas Ferramentas de Gráficos/Ferramentas Padrão ou Ferramentas de Gráficos/Sombreados de Tela Padrão .
Nota
Ter muitos ProximityLight
s ilumina um material irá aumentar as instruções de sombreado de píxeis e afetará o desempenho. Crie o perfil destas alterações no seu projeto.
Como aumentar o número de s disponíveis ProximityLight
de dois para quatro.
// 1) Within GraphicsToolsStandardInput.hlsl change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within ProximityLight.cs change:
private const int proximityLightCount = 2;
// to:
private const int proximityLightCount = 4;
Nota
Se o Unity registar um aviso semelhante ao seguinte, tem de reiniciar o Unity antes de as alterações entrarem em vigor.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.