暫留光線 — MRTK2
HoverLight
是一種Fluent Design 系統範例,模擬在物件表面附近的點光線暫留。 通常用於遠距互動,應用程式可以透過 HoverLight
元件控制暫留光線的屬性。
若要讓材質受到 HoverLight
Mixed Reality工具組/標準著色器影響,則必須使用 ,而且必須啟用Hover Light屬性。
注意
根據預設,MRTK/Standard 著色器最多支援兩 HoverLights
個,但會調整為支援四個,然後 10 個,因為場景會新增更多光線。
範例
MRTK 內的大部分場景都會利用 HoverLight
。 最常見的使用案例位於 MRTK/SDK/Features/UX/Prefabs/Cursors/DefaultCursor.prefab
HoverLightExamples場景也會示範行為的使用方式 HoverLight
,您可以在:MRTK/Examples/Demos/StandardShader/Scenes/
進階使用方式
一次只有十 HoverLights
個可以照亮 材質 。 如果您的專案需要超過 10 HoverLights
個來影響 材料 ,下列範例程式碼會示範如何達成此目的。
注意
讓許多 HoverLights
材質 亮起,會增加圖元著色器指示,並會影響效能。 請在您的專案中分析這些變更。
如何增加 10 到 12 的可用 HoverLights
數目。
// 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.