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

Se även