Närhetsbelysning

En ProximityLight är ett Fluent Design-system paradigm som imiterar en "tonings inverspunktsbelysning" som hovrar nära ytan på ett objekt. Programmet används ofta för nära interaktioner och kan styra egenskaperna för ett närhetsbelysning via ProximityLight komponenten.

För att ett material ska påverkas ProximityLight av en Mixed Reality Toolkit/Standard shader användas och egenskapen Proximity Light måste vara aktiverad.

Anteckning

Upp till två ProximityLights stöds som standard.

Exempel

De flesta scener i MRTK använder en ProximityLight . Det vanligaste användningsfallet finns på MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

Avancerad användning

Som standard kan ProximityLights bara två material i taget användas. Om ditt projekt kräver mer än två ProximityLights för att påverka ett material visar exempelkoden nedan hur du uppnår detta.

Anteckning

Om du ProximityLights har många gråa material ökar instruktionerna för pixelnyanser och påverkar prestandan. Profilera ändringarna i projektet.

Så här ökar du antalet tillgängliga ProximityLights från två till fyra.

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

Anteckning

Om Unity loggar en varning som liknar nedan måste du starta om Unity innan ändringarna börjar gälla.

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

Se även