Unity WebGL RectMask2D Does Not Work

解決 Unity WebGL 平台 RectMask2D 遮罩失效的問題,透過在 Canvas 物件加入 FixRectMask2dWebGL 元件,手動啟用 MaskableGraphic 的 UNITY_UI_CLIP_RECT Shader Keyword,使 RectMask2D 在 WebGL 平台正常運作,附完整 C# 程式碼。

前言

此 Script 用於 WebGL RectMask2D 失去作用的簡易修正。

建議還是先輸出測試確定 RectMask2D 失效再使用此 Script。

使用方式

直接在 Canvas 物件底下 Add Component FixRectMask2dWebGL 即可。

Script

public class FixRectMask2dWebGL : MonoBehaviour
{
#if PlatformWebGL
    private void Awake()
    {
        var items = GetComponentsInChildren<MaskableGraphic>(true);
        for (int i = 0; i < items.Length; i++)
        {
            Material m = items[i].materialForRendering;
            if (m != null)
                m.EnableKeyword("UNITY_UI_CLIP_RECT");
        }
    }
#endif
}

參考文章

2026年5月30日 星期六
comments powered by Disqus
Wenrong Nexus