ホバー ライト — MRTK2
HoverLight
は、オブジェクトの表面の近くでホバリングしているポイント ライトを模倣する Fluent Design System のパラダイムです。 多くの場合は離れた場所からの対話式操作に使用され、アプリケーションは、HoverLight
コンポーネントを使用してホバー ライトのプロパティを制御できます。
マテリアルがMixed Reality Toolkit/Standard シェーダーの影響をHoverLight
受けるためには、ホバー ライト プロパティを有効にする必要があります。
Note
MRTK/標準シェーダーは、既定では最大 2 つの HoverLights
をサポートしますが、シーンにライトがさらに追加されるにつれて、ライトを 4 個、次に 10 個サポートするようにスケーリングされます。
使用例
MRTK 内のほとんどのシーンでは、 を使用します HoverLight
。 最も一般的なユース ケースは、MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab で見つけることができます
また、HoverLightExamples シーンには HoverLight
の動作の使用法も示されており、これは MRTK/Examples/Demos/StandardShader/Scenes/ にあります。
高度な使用方法
一度に素材を照らすことができる HoverLights
は 10 個だけです。 プロジェクトで素材に影響を与えるために 10 個を超える HoverLights
が必要な場合は、次のサンプル コードがその実現方法を示しています。
Note
多数の HoverLights
で素材を照らすと、ピクセル シェーダーの命令が増加し、パフォーマンスに影響を与えます。 これらの変更をプロジェクト内でプロファイルしてください。
"使用可能な HoverLights
の数を 10 個から 12 個に増やす方法。"
// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:
#if defined(_HOVER_LIGHT_HIGH)
#define HOVER_LIGHT_COUNT 10
// to:
#if defined(_HOVER_LIGHT_HIGH)
#define HOVER_LIGHT_COUNT 12
// 2) Within MRTK/Core/Utilities/StandardShader/HoverLight.cs change:
private const int hoverLightCountHigh = 10;
// to:
private const int hoverLightCountHigh = 12;
Note
Unity で次のような警告がログに記録される場合は、Unity を再起動して変更を有効にする必要があります。
Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.