鄰近光線 — MRTK2
ProximityLight
是Fluent Design 系統範例,模擬在物件表面附近的「漸層反點光線」。 通常用於接近互動,應用程式可以透過 ProximityLight
元件控制鄰近光線的屬性。
若要讓材質受到 ProximityLight
Mixed Reality工具組/標準著色器影響,而且必須啟用近接光源屬性。
注意
預設最多支援兩 ProximityLights
個。
範例
MRTK 內的大部分場景都會 ProximityLight
利用 。 最常見的使用案例位於 MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab
進階使用方式
根據預設,一次只能照亮兩 ProximityLights
個 材質 。 如果您的專案需要兩個以上的 ProximityLights
內容 ,下列範例程式碼會示範如何達成此目的。
注意
讓材質更 ProximityLights
亮,會增加圖元著色器指示,並影響效能。 請在您的專案中分析這些變更。
如何增加從 2 到 4 的可用 ProximityLights
數目。
// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within MRTK/Core/Utilities/StandardShader/ProximityLight.cs change:
private const int proximityLightCount = 2;
// to:
private const int proximityLightCount = 4;
注意
如果 Unity 記錄如下的警告,您必須先重新開機 Unity,變更才會生效。
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.