Světlo najetí myší – MRTK2
A HoverLight
je Fluent Design System paradigma, které napodobuje bodové světlo, které se nachází v blízkosti povrchu objektu. Často se používá pro vzdálené interakce, aplikace může řídit vlastnosti ukazatele myši prostřednictvím HoverLight
komponenty.
Pro materiál, který HoverLight
má být ovlivněn Mixed Reality Toolkit/ Standardní shader musí být použit a musí být povolena vlastnost Hover Light.
Poznámka
Shader MRTK/Standard podporuje ve výchozím nastavení až dvě HoverLights
, ale škáluje se tak, aby podporoval čtyři a pak deset, jakmile se na scénu přidají další světla.
Příklady
Většina scén v MRTK využívá HoverLight
. Nejběžnější případ použití najdete na webu MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab.
Scéna HoverLightExamples také demonstruje použití HoverLight
chování a najdete ji tady: MRTK/Examples/Demos/StandardShader/Scenes/
Rozšířené využití
Pouze deset HoverLights
může osvítit materiál najednou. Pokud váš projekt vyžaduje více než deset HoverLights
k ovlivnění materiálu , ukázkový kód níže ukazuje, jak toho dosáhnout.
Poznámka
HoverLights
Mnoho osvětlení materiálu zvýší pokyny pro pixel shader a ovlivní výkon. Profilujte tyto změny v rámci projektu.
Jak zvýšit počet dostupných HoverLights
z deseti na dvanáct.
// 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;
Poznámka
Pokud Unity zaznamená upozornění podobné následujícímu, musíte Unity restartovat, aby se změny projevily.
Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.