ProximityLight
は、オブジェクトのサーフェスの近くにある「グラデーション逆ポイント ライト」を模倣する Fluent Design System パラダイムです。 近距離操作で使用されることが多く、アプリケーションでは ProximityLight
コンポーネントを使用して近接ライトのプロパティを制御できます。
ProximityLight
の影響を受ける素材では、[Mixed Reality ツールキット/標準] シェーダーを使用する必要があり、[近接ライト] プロパティを有効にする必要があります。
Note
既定では、最大 2 つの ProximityLights
がサポートされています。
使用例
MRTK 内のほとんどのシーンでは、 を使用します ProximityLight
。 最も一般的な使用例については、MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab で確認してください。
高度な使用方法
既定では、ProximityLights
で一度に点灯できる素材は 2 つだけです。 素材に影響を与えるためにプロジェクトで 3 つ以上の ProximityLights
が必要である場合は、次のサンプル コードで実現方法を参照してください。
Note
ProximityLights
で素材が多くなると、ピクセル シェーダー命令が増加し、パフォーマンスが影響を受けます。 これらの変更をプロジェクト内でプロファイルしてください。
使用可能な ProximityLights
の数を 2 から 4 に増やす方法
// 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;
Note
Unity で次のような警告がログに記録される場合は、Unity を再起動して変更を有効にする必要があります。
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.