Luz de proximidadProximity light

Un ProximityLight es un paradigma Sistema Fluent Design que imita una "luz de punto inverso de degradado" que se mantiene cerca de la superficie de un objeto.A ProximityLight is a Fluent Design System paradigm that mimics a "gradient inverse point light" hovering near the surface of an object. 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 .Often used for near interactions, the application can control the properties of a Proximity Light via the ProximityLight component.

Para que un material se influye en un ProximityLight sombreador Mixed Reality Toolkit/Estándar se debe usar y la propiedad Luz de proximidad debe estar habilitada.For a material to be influenced by a ProximityLight the Mixed Reality Toolkit/Standard shader must be used and the Proximity Light property must be enabled.

Nota

De forma ProximityLights predeterminada, se admiten hasta dos.Up to two ProximityLights are supported by default.

EjemplosExamples

La mayoría de las escenas dentro de MRTK usan ProximityLight un .Most scenes within the MRTK utilize a ProximityLight. El caso de uso más común se puede encontrar en MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefabThe most common use case can be found on the MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

Uso avanzadoAdvanced Usage

De forma predeterminada, ProximityLights solo dos pueden ilustrar un material a la vez.By default only two ProximityLights can illuminate a material at a time. Si el proyecto requiere más de dos ProximityLights para influir en un material, el código de ejemplo siguiente muestra cómo lograrlo.If your project requires more than two ProximityLights to influence a material the sample code below demonstrates how to achieve this.

Nota

Tener muchas ProximityLights luces de un material aumentará las instrucciones del sombreador de píxeles y afectará al rendimiento.Having many ProximityLights illuminate a material will increase pixel shader instructions and will impact performance. Desenlaza estos cambios en el proyecto.Please profile these changes within your project.

Cómo aumentar el número de disponibles ProximityLights de dos a cuatro.How to increase the number of available ProximityLights from two to four.

// 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, debe reiniciar Unity antes de que los cambios sumen efecto.If Unity logs a warning similar to below then you must restart Unity before your changes will take effect.

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

Consulte tambiénSee also