TweenGraphic.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using UnityEngine;
  2. using UnityEngine.Rendering.Universal;
  3. using UnityEngine.UI;
  4. namespace Core.UI.UTool.UITween
  5. {
  6. [System.Serializable]
  7. public class TweenGraphic : TweenBasic
  8. {
  9. // public CanvasGroup CanvasGroup;
  10. // public TweenLerpType TweenLerpType;
  11. public Color startColor;
  12. public Color endColor;
  13. public AnimationCurve startX = new AnimationCurve();
  14. public Graphic GetCanvasGroup(Object CanvasGroup)
  15. {
  16. Graphic graphic = CanvasGroup as Graphic;
  17. if (graphic == null)
  18. {
  19. GameObject gameObject = CanvasGroup as GameObject;
  20. if (gameObject != null)
  21. {
  22. graphic = gameObject.GetComponent<Graphic>();
  23. }
  24. }
  25. return graphic;
  26. }
  27. protected override void ProPlay(UITweenController UITweenController,Object CanvasGroup, float allTime)
  28. {
  29. Graphic graphic = GetCanvasGroup(CanvasGroup);
  30. if (graphic == null)
  31. {
  32. return;
  33. }
  34. float t = _addTime * allTime;
  35. if (t > 1)
  36. {
  37. t = 1;
  38. }
  39. float v = startX.Evaluate(t);
  40. Color color = Color.Lerp(startColor, endColor, v);
  41. graphic.color = color;
  42. }
  43. protected override void ProRest(UITweenController uiTweenController,Object CanvasGroup)
  44. {
  45. Graphic graphic = GetCanvasGroup(CanvasGroup);
  46. if (graphic == null)
  47. {
  48. return;
  49. }
  50. graphic.color = startColor;
  51. }
  52. }
  53. }