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 ProximityLightbir 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 ProximityLightkullanı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.

Ayrıca bkz.