yyl
2025-06-09 b9751b2f076ee050fe5b685e91ae4fc4469b1015
Main/Component/UI/Decorate/Effect/SpriteEffect.cs
@@ -6,64 +6,62 @@
using System.Collections;
using UnityEngine.UI;
namespace vnxbqy.UI {
    [RequireComponent(typeof(Image))]
    public class SpriteEffect:MonoBehaviour {
[RequireComponent(typeof(Image))]
public class SpriteEffect:MonoBehaviour {
        [SerializeField]
        Effect m_Effect = Effect.None;
    [SerializeField]
    Effect m_Effect = Effect.None;
        CanvasAddition m_CanvasAddition;
        public CanvasAddition canvasAddition {
            get {
                return this.m_CanvasAddition ?? (this.m_CanvasAddition = this.GetComponentInParent<CanvasAddition>());
    CanvasAddition m_CanvasAddition;
    public CanvasAddition canvasAddition {
        get {
            return this.m_CanvasAddition ?? (this.m_CanvasAddition = this.GetComponentInParent<CanvasAddition>());
        }
    }
    Image m_Image;
    public Image image {
        get {
            return m_Image ?? (m_Image = this.AddMissingComponent<Image>());
        }
    }
    Material m_TwinkleMaterial;
    Material twinleMaterial {
        get {
            return m_TwinkleMaterial??(m_TwinkleMaterial=MaterialUtility.GetDefaultSpriteGrayMaterial());
        }
    }
    private void OnEnable() {
        if(this.image != null) {
            switch(this.m_Effect) {
                case Effect.Gray:
                    this.image.material = canvasAddition.spriteGrayMaterial;
                    break;
                case Effect.Twinkle:
                    this.image.material = this.canvasAddition.spriteGrayMaterial;
                    break;
                case Effect.None:
                    this.image.material = null;
                    break;
                default:
                    break;
            }
        }
    }
        Image m_Image;
        public Image image {
            get {
                return m_Image ?? (m_Image = this.AddMissingComponent<Image>());
            }
        }
        Material m_TwinkleMaterial;
        Material twinleMaterial {
            get {
                return m_TwinkleMaterial??(m_TwinkleMaterial=MaterialUtility.GetDefaultSpriteGrayMaterial());
            }
        }
        private void OnEnable() {
            if(this.image != null) {
                switch(this.m_Effect) {
                    case Effect.Gray:
                        this.image.material = canvasAddition.spriteGrayMaterial;
                        break;
                    case Effect.Twinkle:
                        this.image.material = this.canvasAddition.spriteGrayMaterial;
                        break;
                    case Effect.None:
                        this.image.material = null;
                        break;
                    default:
                        break;
                }
            }
        }
        public enum Effect {
            None,
            Gray,
            Twinkle,
        }
    public enum Effect {
        None,
        Gray,
        Twinkle,
    }
}