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 ProximityLight
Mixed 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.