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.