Hovringsljus – MRTK2
A HoverLight
är ett Fluent Design-system paradigm som efterliknar ett punktljus som hovrar nära ytan på ett objekt. Programmet används ofta för interaktioner långt borta och kan styra egenskaperna för ett hovringsljus via komponenten HoverLight
.
Ett material som ska påverkas av en HoverLight
Mixed Reality Toolkit/Standard-skuggning måste användas och egenskapen Hovringsljus måste vara aktiverad.
Anteckning
MRTK/Standard-skuggningen stöder upp till två HoverLights
som standard, men skalas för att stödja fyra och sedan tio när fler lampor läggs till i scenen.
Exempel
De flesta scener i MRTK använder en HoverLight
. Det vanligaste användningsfallet finns på MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab
HoverLightExamples-scenen visar också användningen av HoverLight
beteenden och finns på: MRTK/Examples/Demos/StandardShader/Scenes/
Avancerad användning
Endast tio HoverLights
kan belysa ett material åt gången. Om projektet kräver mer än tio HoverLights
för att påverka ett material visar exempelkoden nedan hur du kan uppnå detta.
Anteckning
Om många HoverLights
lyser upp ett material ökar pixelskuggningsinstruktionerna och påverkar prestandan. Profilera ändringarna i projektet.
Hur man ökar antalet tillgängliga HoverLights
från tio till tolv.
// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:
#if defined(_HOVER_LIGHT_HIGH)
#define HOVER_LIGHT_COUNT 10
// to:
#if defined(_HOVER_LIGHT_HIGH)
#define HOVER_LIGHT_COUNT 12
// 2) Within MRTK/Core/Utilities/StandardShader/HoverLight.cs change:
private const int hoverLightCountHigh = 10;
// to:
private const int hoverLightCountHigh = 12;
Anteckning
Om Unity loggar en varning som liknar nedan måste du starta om Unity innan ändringarna börjar gälla.
Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.