近接ライト — MRTK2

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.

関連項目