Näherungslicht — MRTK2

Ein ProximityLight ist ein Paradigma des Fluent Design System, das ein „im Verlauf umgekehrtes Punktlicht“ imitiert, das in der Nähe der Oberfläche eines Objekts schwebt. Häufig für nahe Interaktionen verwendet, kann die Anwendung die Eigenschaften eines Näherungslichts über die ProximityLight -Komponente steuern.

Damit ein Material von einem ProximityLight beeinflusst werden kann, muss der Mixed Reality Toolkit/Standard-Shader verwendet werden, und die Proximity Light-Eigenschaft muss aktiviert sein.

Hinweis

Bis zu zwei ProximityLights werden standardmäßig unterstützt.

Beispiele

Die meisten Szenen innerhalb von MRTK verwenden eine ProximityLight. Der häufigste Anwendungsfall finden Sie im MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab.

Erweiterte Nutzung

Standardmäßig können nur zwei ProximityLights gleichzeitig ein Material beleuchten. Wenn Ihr Projekt mehr als zwei ProximityLights benötigt, um ein Material zu beeinflussen, zeigt der folgende Beispielcode, wie Sie dies erreichen können.

Hinweis

Wenn viele ProximityLightsMaterialien beleuchten, erhöhen die Pixelshaderanweisungen und wirken sich auf die Leistung aus. Erstellen Sie ein Profil für diese Änderungen in Ihrem Projekt.

Hier erfahren Sie, wie Sie die Anzahl der verfügbaren ProximityLights Von zwei auf vier erhöhen.

// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:

#define PROXIMITY_LIGHT_COUNT 2

// to:

#define PROXIMITY_LIGHT_COUNT 4

// 2) Within MRTK/Core/Utilities/StandardShader/ProximityLight.cs change:

private const int proximityLightCount = 2;

// to:

private const int proximityLightCount = 4;

Hinweis

Wenn Unity eine Warnung wie unten protokolliert, müssen Sie Unity neu starten, damit Ihre Änderungen wirksam werden.

Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.

Weitere Informationen