近接ライトの概要 — MRTK3

ProximityLight は、オブジェクトのサーフェスの近くにある「グラデーション逆ポイント ライト」を模倣する Fluent Design System パラダイムです。 近距離操作で使用されることが多く、アプリケーションでは ProximityLight コンポーネントを使用して近接ライトのプロパティを制御できます。

近接ライト UI の例

ProximityLight の影響を受けるマテリアルでは、グラフィックス ツール/標準またはグラフィックス ツール/標準 Canvas のシェーダーを使用する必要があり、近接ライトのプロパティを有効にする必要があります。 グラフィックス ツール/Canvas 以外/フロントプレートグラフィックス ツール/Canvas/フロントプレートも、ProximityLight の影響を受けますが、少し異なる方法です。

注意

既定では、最大 2 つの ProximityLight がサポートされています。

詳細な使用方法

既定では、ProximityLight で一度に点灯できるマテリアルは 2 つだけです。 プロジェクトでマテリアルに影響を与えるために 2 つ以上の ProximityLight が必要な場合は、次のサンプル コードがグラフィックス ツール/標準またはグラフィックス ツール/標準 Canvas のシェーダーでこれを実現する方法を示しています。

注意

多数の ProximityLightマテリアルを照らすと、ピクセル シェーダーの命令が増加し、パフォーマンスに影響を与えます。 これらの変更をプロジェクト内でプロファイルしてください。

使用可能な ProximityLight の数を 2 から 4 に増やす方法。

// 1) Within GraphicsToolsStandardInput.hlsl change:

#define PROXIMITY_LIGHT_COUNT 2

// to:

#define PROXIMITY_LIGHT_COUNT 4

// 2) Within 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.

関連項目