Näherungslicht – MRTK3

Ein ProximityLight ist ein Fluent Design System Paradigma, das ein "farbverlaufinverses Punktlicht" imitiert, das in der Nähe der Oberfläche eines Objekts zeigt. Es wird häufig für Nahinteraktionen verwendet. Die Anwendung kann die Eigenschaften eines Näherungslichts über die ProximityLight -Komponente steuern.

Beispiel für die Näherungsbeleuchtung der Benutzeroberfläche

Damit ein Material von ProximityLightbeeinflusst wird, müssen die Shader Grafiktools/Standard oder Grafiktools/Standard Canvas verwendet werden, und die Näherungslicht-Eigenschaft muss aktiviert sein. Die Grafiktools/Nicht-Canvas/Frontplatte und Grafiktools/Canvas/Frontplatte werden ebenfalls von ProximityLights beeinflusst, aber auf etwas andere Weise.

Hinweis

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

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 dies in den Shadern Grafiktools/Standard oder Grafiktools/Standard Canvas erreicht wird.

Hinweis

Wenn viele ProximityLightElemente ein Material beleuchten, erhöht sich die Pixelshaderanweisungen und wirkt sich auf die Leistung aus. Profilieren Sie diese Änderungen in Ihrem Projekt.

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

// 1) Within GraphicsToolsStandardInput.hlsl change:

#define PROXIMITY_LIGHT_COUNT 2

// to:

#define PROXIMITY_LIGHT_COUNT 4

// 2) Within ProximityLight.cs change:

private const int proximityLightCount = 2;

// to:

private const int proximityLightCount = 4;

Hinweis

Wenn Unity eine Warnung ähnlich der folgenden protokolliert, müssen Sie Unity neu starten, bevor Ihre Änderungen wirksam werden.

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

Siehe auch