Luce del passaggio del mouse

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

Perché un materiale sia influenzato da uno HoverLight shader Mixed Reality Toolkit/Standard, è necessario che sia abilitata la proprietà Hover Light.

Nota

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

Esempio

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

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

Utilizzo avanzato

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

Nota

La presenza HoverLights di molti elementi che illuminano un materiale aumenta pixel shader istruzioni e influisce 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 avranno effetto.

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

Vedi anche