using DG.Tweening; using UnityEngine; public class UI_Show_Anim : MonoBehaviour { public float animTime_Alpha = 1f; public float animTime_Scale = 1f; private void OnEnable() { Clear(); transform.localScale = Vector3.zero; transform.DOScale(1, animTime_Scale).SetUpdate(true); if (gameObject.Try_Get_Component(out CanvasGroup canvasGroup)) { canvasGroup.alpha = 0; float a = 0; DOTween.To(() => a, (f) => { a = f; canvasGroup.alpha = f; }, 1, animTime_Alpha).SetUpdate(true); } } public void Close() { Clear(); transform.DOScale(0, animTime_Scale).SetUpdate(true); if (gameObject.Try_Get_Component(out CanvasGroup canvasGroup)) { float a = 1; DOTween.To(() => a, (f) => { a = f; canvasGroup.alpha = f; }, 0, animTime_Alpha).SetUpdate(true); } } void Clear() { DOTween.KillAll(transform); } }