using UnityEngine; using UnityEngine.Rendering.Universal; using UnityEngine.UI; namespace Core.UI.UTool.UITween { [System.Serializable] public class TweenGraphic : TweenBasic { // public CanvasGroup CanvasGroup; // public TweenLerpType TweenLerpType; public Color startColor; public Color endColor; public AnimationCurve startX = new AnimationCurve(); public Graphic GetCanvasGroup(Object CanvasGroup) { Graphic graphic = CanvasGroup as Graphic; if (graphic == null) { GameObject gameObject = CanvasGroup as GameObject; if (gameObject != null) { graphic = gameObject.GetComponent(); } } return graphic; } protected override void ProPlay(UITweenController UITweenController,Object CanvasGroup, float allTime) { Graphic graphic = GetCanvasGroup(CanvasGroup); if (graphic == null) { return; } float t = _addTime * allTime; if (t > 1) { t = 1; } float v = startX.Evaluate(t); Color color = Color.Lerp(startColor, endColor, v); graphic.color = color; } protected override void ProRest(UITweenController uiTweenController,Object CanvasGroup) { Graphic graphic = GetCanvasGroup(CanvasGroup); if (graphic == null) { return; } graphic.color = startColor; } } }