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);
            }
        }
        public void FadeToBlack(float duration, Process.OnTerminateCallback endCallback, float delay = 0f, float endAlpha = 1f, bool useCurrentAlpha = false)
        {
            FadeOutProcess fadeOut = (useCurrentAlpha) ? new FadeOutProcess(duration, fadeGraphic, endAlpha, true) : new FadeOutProcess(duration, fadeGraphic, endAlpha);

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