/// <summary> /// フェードインかフェードアウトを、指定の秒数で実行します。 /// stopBGMをtrueにすると、フェードに合わせてBGMを停止します。 /// </summary> /// <param name="type">フェードアウトかフェードインかをFADEで指定</param> /// <param name="color">フェードの色</param> /// <param name="time">秒数</param> /// <param name="stopBGM">BGMをフェードに合わせて停止したい時、true</param> public static IEnumerator StartFade(FadeStateType type, Color color, float time, bool stopBGM = false) { if (fadeImage == null) { yield break; } FadeState = type; if (stopBGM) { SoundController.StopBGM(true); } float startTime = Time.time; Color nowColor; nowColor = color; nowColor.a = type == FadeStateType.In ? 1f : 0f; fadeImage.color = nowColor; fadeImage.enabled = true; while (time > 0f && ((Time.time - startTime) <= time)) { // フェードイン中 float keika = (Time.time - startTime) / time; if (type == FadeStateType.In) { nowColor.a = 1f - keika; } else { // フェードアウト中 nowColor.a = keika; } fadeImage.color = nowColor; NowColor = nowColor; yield return(null); } nowColor.a = type == FadeStateType.In ? 0f : 1f; fadeImage.color = nowColor; NowColor = nowColor; if (type == FadeStateType.In) { fadeImage.enabled = false; } FadeState = FadeStateType.None; if (stopBGM) { SoundController.StopBGM(); } }
/// <summary> /// フェードインかフェードアウトを、指定の秒数で実行します。 /// stopBGMをtrueにすると、フェードに合わせてBGMを停止します。 /// </summary> /// <param name="type">フェードアウトかフェードインかをFADEで指定</param> /// <param name="time">秒数</param> /// <param name="stopBGM">BGMをフェードに合わせて停止したい時、true</param> public static IEnumerator StartFade(FadeStateType type, float time, bool stopBGM = false) { return(StartFade(type, defaultColor, time, stopBGM)); }