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 ProximityLight
Realtà 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 ProximityLight
oggetto . 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.