次の方法で共有


ホバー ライト - MRTK2

HoverLight は、オブジェクトのサーフェスの近くでホバーするポイント ライトを模倣するFluent Design Systemパラダイムです。 遠く離れた場所での操作でよく使用されるアプリケーションは、 HoverLight コンポーネントを介してホバー ライトのプロパティを制御できます。

マテリアルがHoverLightの影響を受けるには、Mixed Reality Toolkit/Standard シェーダーを使用し、Hover Light プロパティを有効にする必要があります。

注:

MRTK/Standard シェーダーは、既定で最大 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が必要な場合は、次のサンプル コードでこれを実現する方法を示します。

注:

多くの 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;

注:

次のような警告をログに記録Unity場合は、変更を有効にする前にUnityを再起動する必要があります。

Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous >size.

関連項目