Übersicht zum Näherungslicht — MRTK3

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. Es wird oftmals für Nahinteraktionen verwendet, und die Anwendung kann die Eigenschaften eines Näherungslichts mithilfe der ProximityLight-Komponente steuern.

Proximity light UI example

Damit ein Material von einem ProximityLight beeinflusst werden kann, müssen die Shader Grafiktools/Standard oder Grafiktools/Standard Canvas verwendet werden, und die Eigenschaft Näherungslicht muss aktiviert sein. Grafiktools/Nicht-Canvas/Frontplate und Grafiktools/Canvas/Frontplate werden ebenfalls von ProximityLights beeinflusst, aber in etwas anderer Weise.

Hinweis

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

Erweiterte Verwendung

Standardmäßig kann ein Material nur von zwei ProximityLights gleichzeitig beleuchtet werden. Wenn für Ihr Projekt der Einfluss von mehr als zwei ProximityLights auf ein Material erforderlich ist, können Sie dem Beispielcode unten entnehmen, wie dies für die Shader Grafiktools/Standard oder Grafiktools/Standard Canvas erreicht werden kann.

Hinweis

Die Beleuchtung eines Materials durch viele ProximityLights erhöht die Anzahl der Pixelshader-Anweisungen und wirkt sich auf die Leistung aus. Erstellen Sie in Ihrem Projekt ein Profil für diese Änderungen.

Erhöhen der Anzahl der verfügbaren ProximityLights von zwei auf vier.

// 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 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