Dela via


Närhetsljus – MRTK2

A ProximityLight är ett Fluent Design-system paradigm som efterliknar ett "lutningsljus med inverteringspunkt" som svävar nära ytan på ett objekt. Programmet används ofta för nära interaktioner och kan styra egenskaperna för ett närhetsljus via komponenten ProximityLight .

För att ett material ska påverkas av en ProximityLightMixed Reality Toolkit/Standard-skuggning måste den 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 endast två ProximityLights belysa ett material i taget. 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 många ProximityLights lyser upp ett material ökar pixelskuggningsinstruktionerna 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