暫留光線 — MRTK2

HoverLight是一種Fluent Design 系統範例,模擬在物件表面附近的點光線暫留。 通常用於遠距互動,應用程式可以透過 HoverLight 元件控制暫留光線的屬性。

若要讓材質受到 HoverLightMixed 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.

另請參閱