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 .
Affinché un materiale venga influenzato da un ProximityLight
oggetto , è 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 ProximityLight
s ma in modo leggermente diverso.
Nota
Per impostazione predefinita, sono supportati fino a due ProximityLight
s.
Uso avanzato
Per impostazione predefinita, solo due ProximityLight
s possono illuminare un materiale alla volta. Se il progetto richiede più di due ProximityLight
s 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 ProximityLight
elementi 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 ProximityLight
da 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.