悬停灯光概述 - MRTK3
HoverLight
是一种 Fluent Design System 范式,它模拟悬停在对象表面附近的点光源。 悬停灯光通常用于远距交互。应用程序可以通过 HoverLight
组件控制悬停灯光的属性。
对于受 HoverLight
影响的材料,必须使用“图形工具/标准”或“图形工具/标准画布”着色器,并且必须启用“悬停灯光”属性。
注意
默认情况下,“图形工具/标准”或“图形工具/标准画布”着色器最多支持 2 个 HoverLight
,但随着更多灯光添加到场景中,它将扩展为支持 4 个。
高级用法
每次只有 4 个 HoverLight
可以照亮一个材料。 如果项目需要 4 个以上的 HoverLight
来影响材料,以下示例代码演示了如何做到这一点。
注意
使用许多 HoverLight
来照亮材料会增加像素着色器指令并影响性能。 请在项目中分析这些更改。
如何将可用 HoverLight
的数量从 4 个增加到 10 个。
// 1) Within GraphicsToolsStandardInput.hlsl change:
#define HOVER_LIGHT_COUNT 4
// to:
#define HOVER_LIGHT_COUNT 10
// 2) Within HoverLight.cs change:
private const int hoverLightCount = 4;
// to:
private const int hoverLightCount = 10;
注意
如果 Unity 记录类似于以下警告,则必须重启 Unity,然后更改才会生效。
Property (_HoverLightData) exceeds previous array size (24 vs 20). Cap to previous > size.