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 ProximityLights
Materialien 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.