Partilhar via


Luz de proximidade — MRTK2

A ProximityLight é um paradigma Sistema Fluent Design que imita uma "luz inversa de gradação" que paira sobre a superfície de um objeto. Muitas vezes 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 Mixed Reality Tem de ser utilizado um sombreado Toolkit/Standard e a propriedade Luz de Proximidade tem de estar ativada.

Nota

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

Exemplos

A maioria das cenas no MRTK utilizam um ProximityLight. O caso de utilização mais comum pode ser encontrado no MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

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.

Nota

Ter muitos ProximityLights a iluminar um material aumentará as instruções do sombreado de píxeis e afetará o desempenho. Crie um perfil destas alterações no seu projeto.

Como aumentar o número de disponíveis ProximityLights de dois para quatro.

// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:

#define PROXIMITY_LIGHT_COUNT 2

// to:

#define PROXIMITY_LIGHT_COUNT 4

// 2) Within MRTK/Core/Utilities/StandardShader/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