public void Switch(string sceneName, float fadeOutDuration, float fadeInDuration)
        {
            if (isSwitching)
            {
                return;
            }
            isSwitching = true;
            targetScene = sceneName;
            FadeOutProcess fadeOut = new FadeOutProcess(fadeOutDuration, fader);

            fadeOut.TerminateCallback += FadeOutEnded;
            FadeInProcess fadeIn = new FadeInProcess(fadeInDuration, fader);

            fadeIn.TerminateCallback += FadeInEnded;
            fadeOut.Attach(fadeIn);
            procManager.LaunchProcess(fadeOut);
        }
        public void FadeFromBlack(float duration, Process.OnTerminateCallback endCallback, float delay = 0f)
        {
            FadeInProcess fadeIn = new FadeInProcess(duration, fadeGraphic, true);

            if (endCallback != null)
            {
                fadeIn.TerminateCallback += endCallback;
            }
            if (delay != 0f)
            {
                TimedProcess delayProcess = new TimedProcess(delay);
                delayProcess.Attach(fadeIn);
                pm.LaunchProcess(delayProcess);
            }
            else
            {
                pm.LaunchProcess(fadeIn);
            }
        }