예제 #1
0
    public void FadeScreenOut(Color fadeTo, FadeOutCallback callback, string sceneToLoad = null)
    {
        ResetFader();
        OverlayRenderer.color   = fadeTo;
        OverlayRenderer.enabled = true;

        StartCoroutine(FadeScreenOutCoroutine(callback, sceneToLoad));
    }
예제 #2
0
 public void FadeOut(FadeOutCallback fadeCallback = null)
 {
     fadeToBlack = true;
     if (fadeCallback != null)
     {
         callback += fadeCallback;
     }
 }
예제 #3
0
    public void FadeScreenOut(Color fadeTo, FadeOutCallback callback)
    {
        Reset();
        image.color   = fadeTo;
        image.enabled = true;

        StartCoroutine(
            FadeScreenOutCoroutine(lerpSpeed, callback));
    }
예제 #4
0
    // Use this for initialization
    void Start()
    {
        fadeOverlay = GetComponentInChildren <Image>();

        alpha       = 1f;
        fadeToBlack = false;
        callback    = null;

        FadeIn();
    }
예제 #5
0
    IEnumerator FadeScreenOutCoroutine(float speed, FadeOutCallback callback)
    {
        for (float t = 0f; t <= 1f; t += Time.unscaledDeltaTime * speed)
        {
            SetAlpha(t);
            yield return(null);
        }

        SetAlpha(opaque);

        FadeScreenOutCallback(callback);
    }
예제 #6
0
    IEnumerator FadeScreenOutCoroutine(FadeOutCallback callback, string sceneToLoad)
    {
        FadeInProgress = true;

        for (float time = 0f; time <= duration; time += Time.smoothDeltaTime)
        {
            float t = Mathf.InverseLerp(0f, duration, time);
            SetAlpha(progression.Evaluate(t));
            yield return(null);
        }

        SetAlpha(opaque);

        FadeScreenOutCallback(callback, sceneToLoad);
        FadeInProgress = false;
    }
예제 #7
0
    public void FadeScreenOutCallback(FadeOutCallback callback)
    {
        switch (callback)
        {
        case FadeOutCallback.RestartScene:
            appManager.UnlockCursor();
            appManager.RestoreTimescale();
            appManager.RestartCurrentScene();
            break;

        case FadeOutCallback.QuitApp:
            appManager.UnlockCursor();
            appManager.Exit();
            break;
        }
    }
예제 #8
0
 // Update is called once per frame
 void Update()
 {
     if (fadeToBlack)
     {
         if (!fadeOverlay.gameObject.activeSelf)
         {
             alpha = 0f;
             fadeOverlay.gameObject.SetActive(true);
         }
         else if (alpha < 1f)
         {
             alpha = Mathf.Clamp01(alpha + ALPHA_STEP);
             Color newColor = fadeOverlay.color;
             newColor.a        = alpha;
             fadeOverlay.color = newColor;
             if (alpha == 1f && callback != null)
             {
                 callback();
                 callback = null;
             }
         }
     }
     else
     {
         if (alpha > 0f && fadeOverlay.gameObject.activeSelf)
         {
             alpha = Mathf.Clamp01(alpha - ALPHA_STEP);
             Color newColor = fadeOverlay.color;
             newColor.a        = alpha;
             fadeOverlay.color = newColor;
             if (alpha == 0f)
             {
                 fadeOverlay.gameObject.SetActive(false);
             }
         }
     }
 }
예제 #9
0
    void FadeScreenOutCallback(FadeOutCallback callback, string sceneToLoad)
    {
        switch (callback)
        {
        case FadeOutCallback.RestartScene:
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            break;

        case FadeOutCallback.LoadScene:
            if (sceneToLoad == null)
            {
                Debug.LogError("ScreenFader callback attempts to load scene but scene name unspecified.");
            }
            else
            {
                SceneManager.LoadScene(sceneToLoad);
            }
            break;

        case FadeOutCallback.QuitApp:
            Application.Quit();                     // implement via whatever controller of your game responsible
            break;
        }
    }
예제 #10
0
 void setFadeOutCallback(FadeOutCallback fc)
 {
     this.fadeoutcallback = fc;
 }
예제 #11
0
 public void FadeScreenOut(FadeOutCallback callback, string sceneToLoad = null)
 {
     FadeScreenOut(defaultFadeOutColor, callback, sceneToLoad);
 }
예제 #12
0
 public void FadeScreenOut(FadeOutCallback callback)
 {
     FadeScreenOut(defaultColor, callback);
 }
예제 #13
0
      /**************************************************************************************************/
      /*!
       *    \fn      public void StartFadeOut(float sec, FadeOutCallback callback)
       *             音量フェードアウト開始
       *    \param   sec      : フェードアウト時間(秒)
       *    \param   callback : フェード完了時のコールバック(必要ない場合は null)
       *    \date    2014.12.25(Thu)
       *    \author  Masayoshi.Matsuyama@Donuts
       */
      /**************************************************************************************************/
			public void StartFadeOut(float sec, FadeOutCallback callback = null) {
				Donuts.Sound.Utility.debPrint("EasyPlay:StartFadeOut:" + sec);
				switch(fadeMode) {
				case FadeMode.FadeIn:
					// フェードイン中なら現在の状況からフェードアウトを行う
					//fadeRate;
					// 時間はその分へらす
					if (sec > 0.0f) {
						sec = sec * fadeRate;
					}
					break;
				case FadeMode.None:
					fadeRate = 1.0f;
					break;
				case FadeMode.FadeOut:
					// フェードアウトを既にやってるなら無し
					Donuts.Sound.Utility.debPrint("ERROR:EasyPlay:already fading...");
					return;
				}
				if (sec > 0.0f) {
					fadeSpeed = 1.0f / sec;
				}
				else {
					fadeSpeed = 2.0f;
				}
				fadeMode 						= FadeMode.FadeOut;
				fadeOutCallbackFunc = callback;
				Donuts.Sound.Utility.debPrint("EasyPlay:StartFadeOut:nowMode=" + fadeMode);
			}