Partilhar via


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 .

Exemplo de IU de luz de proximidade

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 ProximityLights, mas de uma forma ligeiramente diferente.

Nota

Por predefinição, são suportados até dois ProximityLights.

Utilização avançada

Por predefinição, apenas dois ProximityLights podem iluminar um material de cada vez. Se o seu projeto precisar de mais de dois ProximityLights 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 ProximityLights 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 ProximityLightde 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.

Ver também