From d07e14add74e017b52ab2371efeea1aa4ea10ced Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 8 May 2021 23:15:13 +0800 Subject: +init --- .../UI_Extension/Scripts/Effects/BaseUIEffect.cs | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Assets/UI_Extension/Scripts/Effects/BaseUIEffect.cs (limited to 'Assets/UI_Extension/Scripts/Effects/BaseUIEffect.cs') diff --git a/Assets/UI_Extension/Scripts/Effects/BaseUIEffect.cs b/Assets/UI_Extension/Scripts/Effects/BaseUIEffect.cs new file mode 100644 index 0000000..3fefbd3 --- /dev/null +++ b/Assets/UI_Extension/Scripts/Effects/BaseUIEffect.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using UnityEditor; + +[ExecuteInEditMode] +[RequireComponent(typeof(Graphic))] +public abstract class BaseUIEffect + : UIBehaviour + , IMeshModifier + , IMaterialModifier +{ + [NonSerialized] + private Graphic m_Graphic; + + protected Graphic graphic + { + get + { + if (m_Graphic == null) + m_Graphic = GetComponent(); + + return m_Graphic; + } + } + + protected override void OnEnable() + { + base.OnEnable(); + if (graphic != null) + graphic.SetVerticesDirty(); + } + + protected override void OnDisable() + { + if (graphic != null) + graphic.SetVerticesDirty(); + base.OnDisable(); + } + + protected override void OnDidApplyAnimationProperties() + { + if (graphic != null) + graphic.SetVerticesDirty(); + base.OnDidApplyAnimationProperties(); + } + +#if UNITY_EDITOR + protected override void OnValidate() + { + base.OnValidate(); + if (graphic != null) + graphic.SetVerticesDirty(); + } + +#endif + + public void ModifyMesh(Mesh mesh) + { + using (var vh = new VertexHelper(mesh)) + { + ModifyMesh(vh); + vh.FillMesh(mesh); + } + } + + public virtual void ModifyMesh(VertexHelper vh) + { + } + + public virtual Material GetModifiedMaterial(Material baseMaterial) + { + return baseMaterial; + } + +} -- cgit v1.1-26-g67d0