private void SlideIn(RectTransform rectTransform, Vector2 fromPosition, float timeAnimation, float timeDelay, TweenCallback actionOnStart = null, TweenCallback actionOnComplete = null, Ease ease = Ease.OutCubic)
    {
        if (canvasGroup == null)
        {
            canvasGroup = rectTransform.GetComponent <CanvasGroup>();
        }
        if (canvasGroup != null)
        {
            canvasGroup.alpha = 1;
        }

        gameObject.SetActive(true);

        rectTransform.DOComplete();
        rectTransform.anchoredPosition = fromPosition;
        rectTransform
        .DOAnchorPos(UIManager.startAnchoredPosition2D, timeAnimation, false)
        .SetDelay(timeDelay)
        .SetEase(ease)
        .SetUpdate(UpdateType.Normal, true)
        .OnStart(() =>
        {
            actionOnStart?.Invoke();
            OnStart?.Invoke();
        })
        .OnComplete(() =>
        {
            ShowElements(() =>
            {
                Status = UIAnimStatus.IsShow;
                actionOnComplete?.Invoke();
                OnShowCompleted?.Invoke();
            });
        });
    }
    private void FaceIn(RectTransform rectTransform, float timeAnimation, float timeDelay, float end = 1f, TweenCallback actionOnStart = null, TweenCallback actionOnComplete = null, Ease ease = Ease.OutCubic)
    {
        if (canvasGroup == null)
        {
            canvasGroup = rectTransform.GetComponent <CanvasGroup>();
        }
        if (canvasGroup == null)
        {
            canvasGroup = rectTransform.gameObject.AddComponent <CanvasGroup>();
        }
        canvasGroup.alpha = 0f;

        gameObject.SetActive(true);
        canvasGroup.DOKill(true);
        rectTransform.DOKill(true);
        rectTransform
        .DOAnchorPos(UIManager.startAnchoredPosition2D, 0).OnComplete(() =>
        {
            canvasGroup
            .DOFade(end, timeAnimation)
            .SetDelay(timeDelay)
            .SetEase(ease)
            .SetUpdate(UpdateType.Normal, true)
            .OnStart(() =>
            {
                actionOnStart?.Invoke();
                OnStart?.Invoke();
            })
            .OnComplete(() =>
            {
                ShowElements(() =>
                {
                    Status = UIAnimStatus.IsShow;
                    actionOnComplete?.Invoke();
                    OnShowCompleted?.Invoke();
                });
            });
        }).SetUpdate(UpdateType.Normal, true);
    }