Översikt över närhetsljus – MRTK3
A ProximityLight
är ett Fluent Design-system paradigm som efterliknar ett "gradient inverse point light" som hovrar nära ytan på ett objekt. Det används ofta för nära interaktioner, programmet kan styra egenskaperna för ett närhetsljus via komponenten ProximityLight
.
För att ett material ska påverkas av en ProximityLight
måste grafikverktyg/standard - eller grafikverktyg/standardkuggar för arbetsytor användas och egenskapen Proximity Light måste vara aktiverad.
Grafikverktygen/icke-canvas/frontplate och grafikverktyg/arbetsytor/frontplattor påverkas också av ProximityLight
s men på ett något annorlunda sätt.
Anteckning
Upp till två ProximityLight
s stöds som standard.
Avancerad användning
Som standard kan endast två ProximityLight
s belysa ett material åt gången. Om projektet kräver mer än två ProximityLight
s för att påverka ett material visar exempelkoden nedan hur du kan uppnå detta på grafikverktygen/standard- eller grafikverktygen/Standard-arbetsyteskuggarna.
Anteckning
Om många ProximityLight
lyser upp ett material ökar pixelskuggningsinstruktionerna och påverkar prestandan. Profilera ändringarna i projektet.
Så här ökar du antalet tillgängliga ProximityLight
s från två till fyra.
// 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;
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.