yyl
2026-03-04 bc1cb6da854cb2e9144f10ed55330a537ecdca16
Main/Component/UI/Effect/EllipseMask.cs
@@ -1,6 +1,7 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
/// <summary>
/// 椭圆形遮罩组件
@@ -156,15 +157,17 @@
    {
        if (m_MaskMaterial == null)
        {
            Shader ellipseShader = ResManager.Instance.LoadAsset<Shader>("Shader", "GUI_EllipseMask");
            if (ellipseShader != null)
            ResManager.Instance.LoadAssetAsync<Shader>("Shader", "GUI_EllipseMask").ContinueWith(ellipseShader =>
            {
                m_MaskMaterial = new Material(ellipseShader);
            }
            else
            {
                Debug.LogError("EllipseMask shader not found!");
            }
                if (ellipseShader != null)
                {
                    m_MaskMaterial = new Material(ellipseShader);
                }
                else
                {
                    Debug.LogError("EllipseMask shader not found!");
                }
            }).Forget();
        }
    }
@@ -240,14 +243,17 @@
        if (graphic.material == null || !graphic.material.shader.name.Contains("EllipseMaskedContent"))
        {
            // Shader maskedShader = Shader.Find("GUI/EllipseMaskedContent");
            Shader maskedShader = ResManager.Instance.LoadAsset<Shader>("Shader", "GUI_EllipseMaskedContent");
            if (maskedShader != null)
            ResManager.Instance.LoadAssetAsync<Shader>("Shader", "GUI_EllipseMaskedContent").ContinueWith(maskedShader =>
            {
                Material maskedMaterial = new Material(maskedShader);
                maskedMaterial.SetInt("_Stencil", m_StencilID);
                maskedMaterial.SetInt("_StencilComp", 3); // Equal
                graphic.material = maskedMaterial;
            }
                if (maskedShader != null)
                {
                    Material maskedMaterial = new Material(maskedShader);
                    maskedMaterial.SetInt("_Stencil", m_StencilID);
                    maskedMaterial.SetInt("_StencilComp", 3); // Equal
                    graphic.material = maskedMaterial;
                }
            }).Forget();
        }
        else
        {