Introducción a la luz de proximidad: MRTK3

es ProximityLight un paradigma Sistema Fluent Design que imita una "luz de punto inverso de degradado" que mantiene el puntero 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.

Ejemplo de interfaz de usuario de luz de proximidad

Para que un material se vea influenciado por , ProximityLightse deben usar los sombreadores Herramientas de gráficos/Standard o Herramientas de gráficos/Standard Lienzo y se debe habilitar la propiedad Luz de proximidad. Las herramientas de gráficos/no lienzo/frontal y herramientas de gráficos/lienzo/placa frontal también están influenciadas por ProximityLights, pero de una manera ligeramente diferente.

Nota:

De forma predeterminada, se admiten hasta dos ProximityLights.

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 hacerlo en los sombreadores Herramientas de gráficos/Standard o Herramientas de gráficos/Standard Canvas.

Nota:

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

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

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

Si Unity registra una advertencia similar a la siguiente, debe reiniciar Unity antes de que los cambios surtan efecto.

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

Vea también