Dela via


Ö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 .

Exempel på närhetsljusgränssnitt

För att ett material ska påverkas av en ProximityLightmå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 ProximityLights men på ett något annorlunda sätt.

Anteckning

Upp till två ProximityLights stöds som standard.

Avancerad användning

Som standard kan endast två ProximityLights belysa ett material åt gången. Om projektet kräver mer än två ProximityLights 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 ProximityLightlyser 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 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.

Se även