Luce di prossimità - MRTK2

Un ProximityLight è un paradigma Fluent Design System che simula una "luce a punti inversa sfumatura" che passa vicino alla superficie di un oggetto. Spesso usato per interazioni vicino, l'applicazione può controllare le proprietà di una luce di prossimità tramite il ProximityLight componente.

Per consentire l'uso di un materiale da parte di un ProximityLightRealtà mista Toolkit/Standard shader e la proprietà Proximity Light deve essere abilitata.

Nota

Fino a due ProximityLights sono supportati per impostazione predefinita.

Esempio

La maggior parte delle scene all'interno di MRTK usa un ProximityLightoggetto . Il caso d'uso più comune è disponibile nel prefab MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

Utilizzo avanzato

Per impostazione predefinita, solo due ProximityLights possono illuminare un materiale alla volta. Se il progetto richiede più di due ProximityLights per influenzare un materiale , il codice di esempio seguente illustra come ottenere questo risultato.

Nota

La presenza di molti ProximityLights materiali illumina un materiale aumenterà le istruzioni del pixel shader e avrà effetto sulle prestazioni. Profila queste modifiche all'interno del progetto.

Come aumentare il numero di disponibili ProximityLights da due a quattro.

// 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 Unity registra un avviso simile al seguente, è necessario riavviare Unity prima che le modifiche vengano effettive.

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

Vedi anche