void Fade(TransitionConfig cfg, LocalTransformInfo defaultTransform)
    {
        var fadeFrom = cfg.begin;
        var fadeTo   = cfg.end;

        CachedCanvasGroup.alpha = fadeFrom;
        LeanTween.alphaCanvas(CachedCanvasGroup, fadeTo, cfg.duration).setEase(cfg.easing);
    }
    void RotateZ(TransitionConfig cfg, LocalTransformInfo defaultTransform)
    {
        var beginAngle = defaultTransform.eulerRotation;

        beginAngle.z += cfg.begin;

        var endAngle = defaultTransform.eulerRotation;

        endAngle.z += cfg.end;

        transform.localEulerAngles = beginAngle;
        LeanTween.rotateLocal(gameObject, endAngle, cfg.duration).setEase(cfg.easing);
    }
    void MoveY(TransitionConfig cfg, LocalTransformInfo defaultTransform)
    {
        var beginPoint = defaultTransform.position;

        beginPoint.y += cfg.begin;

        var endPoint = defaultTransform.position;

        endPoint.y += cfg.end;

        transform.localPosition = beginPoint;
        LeanTween.moveLocal(gameObject, endPoint, cfg.duration).setEase(cfg.easing);
    }
    void Zoom(TransitionConfig cfg, LocalTransformInfo defaultTransform)
    {
        var beginScale = defaultTransform.scale;

        beginScale.x = cfg.begin;
        beginScale.y = cfg.begin;

        var endScale = defaultTransform.scale;

        endScale.x = cfg.end;
        endScale.y = cfg.end;

        transform.localScale = beginScale;
        LeanTween.scale(gameObject, endScale, cfg.duration).setEase(cfg.easing);
    }