using CommonUI_Unity3D.Impl; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace CommonUnity3D.UGUI { [DisallowMultipleComponent, ExecuteInEditMode, RequireComponent(typeof(CanvasRenderer)), RequireComponent(typeof(RectTransform))] public class GrayMaterialModifier : UIBehaviour, IMaterialModifier { protected Material gray_mat; public virtual Material GetModifiedMaterial(Material baseMaterial) { if (gray_mat == null) { gray_mat = new Material(baseMaterial); gray_mat.SetFloat("_Gray", 1); gray_mat.SetPass(0); } return gray_mat; } protected override void OnDestroy() { if (gray_mat != null) { Material.Destroy(gray_mat); } base.OnDestroy(); } } }