Condividi tramite


Luce al passaggio del mouse - MRTK2

Un HoverLight è un paradigma Fluent Design System che simula una luce punto che si posiziona vicino alla superficie di un oggetto. Spesso usata per interazioni lontane, l'applicazione può controllare le proprietà di una luce al passaggio del mouse tramite il HoverLight componente.

Affinché un materiale sia influenzato da un HoverLightRealtà mista Toolkit/Standard shader deve essere usato e la proprietà Hover Light deve essere abilitata.

Nota

Lo shader MRTK/Standard supporta fino a due HoverLights per impostazione predefinita, ma verrà ridimensionato per supportare quattro e quindi dieci luci quando vengono aggiunte altre luci alla scena.

Esempi

La maggior parte delle scene all'interno di MRTK utilizza un HoverLightoggetto . Il caso d'uso più comune è disponibile in MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab

La scena HoverLightExamples illustra anche l'utilizzo dei HoverLight comportamenti ed è disponibile in: MRTK/Examples/Demos/StandardShader/Scenes/

Utilizzo avanzato

Solo dieci HoverLights possono illuminare un materiale alla volta. Se il progetto richiede più di dieci HoverLights elementi per influenzare un materiale , il codice di esempio seguente illustra come ottenere questo risultato.

Nota

La presenza di molti HoverLights illuminare un materiale aumenterà le istruzioni per i pixel shader e influirà sulle prestazioni. Profilare queste modifiche all'interno del progetto.

Come aumentare il numero di disponibili HoverLights da dieci a dodici.

// 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;

Nota

Se Unity registra un avviso simile al seguente, è necessario riavviare Unity prima che le modifiche abbiano effetto.

Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.

Vedere anche