悬停灯光

HoverLight种Fluent Design System范例,它模拟在对象表面附近悬停的点光。 通常用于远地交互,应用程序可以通过 组件控制悬停灯 HoverLight 的属性。

对于受混合现实环境/标准着色器Toolkit材料,必须启用 HoverLight 停光属性。

备注

默认情况下,MRTK/标准着色器最多支持两个,但会缩放以支持四个,然后支持 10 个,因为向场景中添加了更多 HoverLights 光。

示例

MRTK 中的大多数场景都使用 HoverLight 。 可以在 MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab 上找到最常见的用例

HoverLightExamples 场景还演示了行为的用法,可在 HoverLight MRTK/Examples/Demos/StandardShader/Scene/

高级用法

一次 HoverLights 只能有10 个材料进行照明。 如果项目需要超过 10 个才能影响材料,下面的示例代码 HoverLights 将演示如何实现此目的。

备注

材料 HoverLights 进行多次 着色会增加 像素着色器指令,并会影响性能。 请在项目中分析这些更改。

如何将可用数量从 10 HoverLights 个增加至 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.

另请参阅