using System.Collections; using System.Collections.Generic; using DG.Tweening; using UnityEngine; using UnityEngine.Events; [RequireComponent(typeof(CanvasGroup))] public class UICanvas : MonoBehaviour { CanvasGroup canvasGroup; public UnityEvent OnHide; [SerializeField] float duration; void Start() { canvasGroup = GetComponent(); } public void Show() { canvasGroup.DOFade(1, duration); } public void Hide() { canvasGroup.DOFade(0, duration) .OnComplete(() => { OnHide?.Invoke(); gameObject.SetActive(false); }); } void OnEnable() { if(canvasGroup == null) canvasGroup = GetComponent(); canvasGroup.alpha = 0; Show(); } }