Share via


Luce al passaggio del mouse - MRTK2

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

Affinché un materiale venga influenzato da un HoverLightRealtà mista Toolkit/Shader Standard, è necessario usare 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 quando alla scena vengono aggiunte altre luci.

Esempio

La maggior parte delle scene all'interno di MRTK usa .HoverLight 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 e si trova 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 per influenzare un materiale , il codice di esempio riportato di seguito illustra come ottenere questo risultato.

Nota

La presenza di molti HoverLights materiali illumina un materiale aumenterà le istruzioni del pixel shader e influirà sulle prestazioni. Profila 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 vengano applicate.

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

Vedi anche