| | |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using System.Collections.Generic; |
| | | using Cysharp.Threading.Tasks; |
| | | |
| | | /// <summary> |
| | | /// 椭圆形遮罩组件 |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | |
| | | 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 |
| | | { |