Condividi tramite


Panoramica della luce di prossimità - MRTK3

Un ProximityLight è un paradigma di Fluent Design System che simula una "luce del punto inverso sfumatura" che passa vicino alla superficie di un oggetto. Viene spesso usato per le interazioni vicine, l'applicazione può controllare le proprietà di una luce di prossimità tramite il ProximityLight componente .

Esempio di interfaccia utente della luce di prossimità

Affinché un materiale venga influenzato da un ProximityLightoggetto , è necessario utilizzare gli strumenti di grafica/standard o strumenti grafici/shader canvas standard e la proprietà Proximity Light deve essere abilitata. Strumenti grafici/Non-Canvas/Frontplate e Strumenti grafici/Canvas/Frontplate sono influenzati anche da ProximityLights ma in modo leggermente diverso.

Nota

Per impostazione predefinita, sono supportati fino a due ProximityLights.

Uso 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 riportato di seguito illustra come ottenere questo risultato negli shader Standard o Graphics Tools /Canvas Standard .

Nota

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

Come aumentare il numero di disponibili ProximityLightda due a quattro.

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

Se Unity registra un avviso simile al seguente, è necessario riavviare Unity prima che le modifiche vengano applicate.

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

Vedi anche