Luz de proximidad: MRTK2

Los elementos ProximityLight son paradigmas del Sistema Fluent Design que imitan a una "luz puntual invertida con degradado" que se mantiene cerca de la superficie de un objeto. A menudo se usa para interacciones cercanas, la aplicación puede controlar las propiedades de una luz de proximidad a través del ProximityLight componente.

Para que un material sea influenciado por un ProximityLightMixed Reality Toolkit/Standard shader debe usarse y la propiedad Proximity Light debe estar habilitada.

Nota

De forma predeterminada, se admiten hasta dos ProximityLights .

Ejemplos

La mayoría de las escenas de MRTK utilizan un ProximityLight. El caso de uso más común se puede encontrar en MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

Uso avanzado

De forma predeterminada, solo dos ProximityLights pueden iluminar un material a la vez. Si el proyecto requiere más de dos ProximityLights para influir en un material , el código de ejemplo siguiente muestra cómo lograrlo.

Nota

Tener muchos ProximityLights iluminar un material aumentará las instrucciones del sombreador de píxeles y afectará al rendimiento. Describa estos cambios dentro del proyecto.

Cómo aumentar el número de disponibles ProximityLights de dos a cuatro.

// 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

Si Unity registra una advertencia similar a la siguiente, deberá reiniciarlo para que los cambios surtan efecto.

Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.

Vea también