Yakınlık ışığı — MRTK2
A ProximityLight
, bir nesnenin yüzeyinin yakınında bulunan "gradyan ters nokta ışığını" taklit eden Fluent Design Sistemi bir paradigmadır. Genellikle yakın etkileşimler için kullanılan uygulama, bir Yakınlık ışığının özelliklerini bileşen aracılığıyla ProximityLight
denetleyebiliyor.
Bir malzemenin ProximityLight
bir Karma Gerçeklik Araç Seti/Standart gölgelendiricisi kullanılması ve Yakınlık Işığı özelliğinin etkinleştirilmesi gerekir.
Not
Varsayılan olarak en fazla iki ProximityLights
tane desteklenir.
Örnekler
MRTK içindeki çoğu sahne bir ProximityLight
kullanır. En yaygın kullanım örneği MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab üzerinde bulunabilir
Gelişmiş Kullanım
Varsayılan olarak, bir malzemeyi aynı anda yalnızca iki ProximityLights
kişi aydınlatabilir. Projenizin bir malzemeyi etkilemesi için ikiden ProximityLights
fazla gerekiyorsa, aşağıdaki örnek kod bunu nasıl başarmak gerektiğini gösterir.
Not
ProximityLights
Birçok malzemenin aydınlatılmış olması piksel gölgelendirici yönergelerini artırır ve performansı etkiler. Lütfen bu değişikliklerin profilini projenizde belirleyin.
Kullanılabilir sayısı ikiden dörte nasıl artırabilirsiniz ProximityLights
?
// 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;
Not
Unity aşağıdakine benzer bir uyarı kaydederse, değişikliklerinizin etkili olması için Unity'yi yeniden başlatmanız gerekir.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.