Udostępnij za pośrednictwem


Omówienie światła zbliżeniowego — MRTK3

A ProximityLight to model Fluent Design System, który naśladuje "odwrotne światło punktowe gradientu" unoszące się w pobliżu powierzchni obiektu. Jest on często używany do interakcji w pobliżu, aplikacja może kontrolować właściwości światła zbliżeniowego ProximityLight za pośrednictwem składnika.

Przykład interfejsu użytkownika światła zbliżeniowego

Aby materiał był pod wpływem ProximityLightelementu , należy użyć narzędzi graficznych/ standardowych lub narzędzi graficznych/cieniowania kanwy standardowej , a właściwość Light zbliżeniowa musi być włączona. Pod wpływem narzędzi graficznych/innych niż canvas/frontplate i narzędzi graficznych/kanwy/platformy frontplate mają również wpływ ProximityLights, ale w nieco inny sposób.

Uwaga

Domyślnie obsługiwane są maksymalnie dwa ProximityLights.

Użycie zaawansowane

Domyślnie tylko dwa ProximityLights mogą oświetlić materiał w danym momencie. Jeśli projekt wymaga więcej niż dwóch ProximityLightelementów, aby wpłynąć na materiał, poniższy przykładowy kod pokazuje, jak to osiągnąć w narzędziach graficznych/narzędziach standardowych lub narzędziach graficznych/modułach cieniujących kanwy w warstwie Standardowa .

Uwaga

O wielu ProximityLightświatłach materiał zwiększy instrukcje cieniowania pikseli i wpłynie na wydajność. Zaprofiluj te zmiany w projekcie.

Jak zwiększyć liczbę dostępnych ProximityLights z dwóch do czterech.

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

Uwaga

Jeśli aparat Unity rejestruje ostrzeżenie podobne do poniższego, przed wprowadzeniem zmian należy ponownie uruchomić aparat Unity.

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

Zobacz też