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.