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);
        }
Exemple #3
0
        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());
                });
            }
        }
Exemple #9
0
 public BgmFadeInfo(FadeUtility.FadeState state)
 {
     State = state;
 }