Schweblicht — MRTK2
Ein HoverLight
ist ein Paradigma des Fluent Design System, das ein Punktlicht imitiert, das in der Nähe der Oberfläche eines Objekts schwebt. Es wird oftmals für Ferninteraktionen verwendet, und die Anwendung kann die Eigenschaften eines Schwebelichts mithilfe der HoverLight
-Komponente steuern.
Damit ein Material von einem HoverLight
beeinflusst werden kann, muss der Mixed Reality Toolkit/Standard-Shader verwendet werden, und die Hover Light-Eigenschaft muss aktiviert sein.
Hinweis
Der MRTK/Standard-Shader unterstützt standardmäßig bis zu zwei HoverLights
, wird jedoch auf vier und dann zehn skaliert, wenn der Szene weitere Leuchten hinzugefügt werden.
Beispiele
Die meisten Szenen in MRTK verwenden ein HoverLight
. Den häufigsten Anwendungsfall finden Sie im MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab
Die HoverLightExamples-Szene veranschaulicht auch die Verwendung von HoverLight
Verhaltensweisen und finden Sie unter: MRTK/Examples/Demos/StandardShader/Scenes/
Erweiterte Nutzung
Nur zehn HoverLights
können ein Material gleichzeitig beleuchten. Wenn ihr Projekt mehr als zehn HoverLights
benötigt, um ein Material zu beeinflussen, zeigt der folgende Beispielcode, wie dies erreicht werden kann.
Hinweis
Wenn viele HoverLights
Materialien beleuchten, erhöhen die Pixel-Shaderanweisungen und wirken sich auf die Leistung aus. Erstellen Sie ein Profil für diese Änderungen in Ihrem Projekt.
Wie die Anzahl der verfügbaren von zehn auf zwölf erhöht werden kann HoverLights
.
// 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;
Hinweis
Wenn Unity eine Warnung wie unten protokolliert, müssen Sie Unity neu starten, damit Ihre Änderungen wirksam werden.
Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.