ホバー ライト - 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.

関連項目