public void FrameInFinish(Action callback) { if (callback != null) { callback(); } _fadeState = FadeUtility.FadeState.FadeinFinish; NotifyFrameInFinish(); }
private void FrameOutFinish(Action callback) { if (callback != null) { callback(); } _fadeState = FadeUtility.FadeState.FadeoutFinish; Destroy(gameObject); }
private void AddBgmStateDictionary(int index, FadeUtility.FadeState state) { // 上書き foreach (int key in _bgmFadeInfoDic.Keys) { if (key == index) { _bgmFadeInfoDic[key] = new BgmFadeInfo(state); return; } } _bgmFadeInfoDic.Add(index, new BgmFadeInfo(state)); }
private bool TransitionSceneCore(string sceneName) { if (_fadeState != FadeUtility.FadeState.None && _fadeState != FadeUtility.FadeState.FadeoutFinish) { return(false); } { _alpha = 0; _fadeInterval = TransitionSceneFadeInterval; _fadeState = FadeUtility.FadeState.FadeinStart; gameObject.SetActive(true); StartCoroutine(FadeIn(sceneName)); } return(true); }
private void FrameInCore(Action callback, Image modalImage = null) { // check state { if (_fadeState != FadeUtility.FadeState.None && _fadeState != FadeUtility.FadeState.FadeoutFinish) { return; } _fadeState = FadeUtility.FadeState.FadeinStart; gameObject.SetActive(true); } // SE SoundManager.Instance.PlaySe("window"); // Animator > DialogAnimation { if (FrameInAnimator != null) { FrameInAnimator.updateMode = AnimatorUpdateMode.UnscaledTime; StartCoroutine(WaitAnimatorFinish(FrameInAnimator, () => { FrameInFinish(callback); })); } else { var dialogAnimationScript = GetComponents <DialogAnimation>().FirstOrDefault(x => x.CanPlayAnimation(false)); if (dialogAnimationScript != null) { dialogAnimationScript.SetModalImage(modalImage); dialogAnimationScript.PlayDialogAnimation(() => { FrameInFinish(callback); }); } else { FrameInDefault(callback, modalImage); } } } }
private void FrameOutCore(Action callback, Image modalImage = null) { // check state { if (_fadeState != FadeUtility.FadeState.FadeinFinish) { return; } _fadeState = FadeUtility.FadeState.FadeoutStart; } // SE SoundManager.Instance.PlaySe("cancel"); // Animator(this or parent) > DialogAnimation(this) > Default { if (FrameOutAnimator != null) { FrameOutAnimator.updateMode = AnimatorUpdateMode.UnscaledTime; StartCoroutine(WaitAnimatorFinish(FrameOutAnimator, () => { FrameOutFinish(callback); })); } else { var dialogAnimationScript = GetComponents <DialogAnimation>().FirstOrDefault(x => x.CanPlayAnimation(true)); if (dialogAnimationScript != null) { dialogAnimationScript.SetModalImage(modalImage); dialogAnimationScript.PlayDialogAnimation(() => { FrameOutFinish(callback); }); } else { FrameOutDefault(callback, modalImage); } } } }
private IEnumerator FadeOut() { // fade out black texture { float time = 0; while (time <= _fadeInterval) { _alpha = Mathf.Lerp(1f, 0f, time / _fadeInterval); time += Time.unscaledDeltaTime; yield return(0); } _alpha = 0.0f; } { _fadeState = FadeUtility.FadeState.FadeoutFinish; gameObject.SetActive(false); } }
private IEnumerator FadeIn(string sceneName) { // fade in black texture { float time = 0; while (time <= _fadeInterval) { _alpha = Mathf.Lerp(0f, 1f, time / _fadeInterval); time += Time.unscaledDeltaTime; yield return(null); } _alpha = 1.0f; } // scene change { // reset time scale { Time.timeScale = 1.0f; } _fadeState = FadeUtility.FadeState.FadeinFinish; // load next scene SceneUtility.LoadScene(this, sceneName, () => { // 通知 _notifyChangeScene(sceneName); // フェードアウト開始 _fadeState = FadeUtility.FadeState.FadeoutStart; StartCoroutine(FadeOut()); }); } }
public BgmFadeInfo(FadeUtility.FadeState state) { State = state; }