鄰近光線概觀 - MRTK3
ProximityLight
是Fluent Design 系統範例,模擬在物件表面附近的「漸層反點光線」。 它通常用於接近互動,應用程式可以透過 ProximityLight
元件控制鄰近光線的屬性。
若要讓材質受到 ProximityLight
影響,必須使用 圖形工具/標準 或 圖形工具/標準畫布 著色器,而且必須啟用 近接光源 屬性。 圖形工具/非 Canvas/Frontplate和Graphics Tools/Canvas/Frontplate也會受到 ProximityLight
s 的影響,但方式稍有不同。
注意
預設最多支援兩 ProximityLight
個 。
進階使用方式
根據預設,一次只能照亮兩 ProximityLight
個 材質 。 如果您的專案需要兩個以上的 ProximityLight
來影響材質,下列範例程式碼會示範如何在圖形工具/標準或圖形工具/標準畫布著色器上達成此目的。
注意
讓許多 ProximityLight
材質 亮起,會增加圖元著色器指示,並會影響效能。 分析專案中的這些變更。
如何增加 2 到 4 的可用 ProximityLight
數目。
// 1) Within GraphicsToolsStandardInput.hlsl change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within 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.