Światło zbliżeniowe — MRTK2
A ProximityLight
to model Fluent Design System, który naśladuje "odwrotne światło punktowe gradientu" unoszące się w pobliżu powierzchni obiektu. Często używane w przypadku bliskich interakcji aplikacja może kontrolować właściwości światła zbliżeniowego ProximityLight
za pośrednictwem składnika.
Aby materiał był pod wpływem ProximityLight
cieniowania zestawu narzędzi Mixed Reality Toolkit/Standard, należy włączyć właściwość Proximity Light.
Uwaga
Domyślnie obsługiwane są maksymalnie dwa ProximityLights
.
Przykłady
Większość scen w zestawie narzędzi MRTK wykorzystuje element ProximityLight
. Najbardziej typowy przypadek użycia można znaleźć w pliku MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab
Zaawansowane użycie
Domyślnie tylko dwa ProximityLights
mogą jednocześnie oświetlić materiał . Jeśli projekt wymaga więcej niż dwóch ProximityLights
, aby wpłynąć na materiał , poniższy przykładowy kod pokazuje, jak to osiągnąć.
Uwaga
O wielu ProximityLights
światłach materiał zwiększy instrukcje cieniowania pikseli i wpłynie na wydajność. Sprofiluj te zmiany w projekcie.
Jak zwiększyć liczbę dostępnych ProximityLights
z dwóch do czterech.
// 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;
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.