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