private void ProcessHide(CanvasWrapper canvasWrapper)
 {
     canvasWrapper.SetStatus(CanvasStatus.HideAnimationPlaying);
     StartCoroutine(canvasWrapper.OnHideCanvasCoroutine, () =>
     {
         canvasWrapper.SetActive(false);
     });
 }
        public ICanvas Show(TCanvasName canvasName)
        {
            CanvasWrapper canvasWrapper = GetCanvasWrapper(canvasName, canvas => canvas.isShow == false);

            if (canvasWrapper == null)
            {
                canvasWrapper = OnCreateInstance(canvasName);
            }

            if (canvasWrapper != null)
            {
                canvasWrapper.SetActive(true);
                StartCoroutine(canvasWrapper.OnShowCanvasCoroutine());
                OnShowCanvas(canvasName, canvasWrapper.canvasInstance);
            }

            return(canvasWrapper.canvasInstance);
        }