コード例 #1
0
        private IEnumerator Transition(float time, bool FadeIn, Action callback = null)
        {
            m_state = CameraTransitionState.TRANSITIONING;
            float totalTime = 0f;
            float t         = 0f;
            float alpha     = 0f;

            do
            {
                totalTime += Time.deltaTime;
                t          = totalTime / time;

                alpha = (FadeIn)
                    ? Mathf.Lerp(0, 1, t)
                    : Mathf.Lerp(1, 0, t);

                SetBackgroundAlpha(alpha);
                yield return(null);
            } while (t < 1f);


            m_state = (FadeIn) ? CameraTransitionState.IDLE_IN
                               : CameraTransitionState.IDLE_OUT;

            callback?.Invoke();
        }
コード例 #2
0
        private void SetTransitionValues(float Time, bool CheckBool, bool fadeIn, Action callback = null)
        {
            if (!CheckCanTransition(CheckBool))
            {
                return;
            }

            m_transitionTime = Time;
            m_callback       = callback;
            m_fadingIn       = fadeIn;
            m_totalTime      = 0f;
            m_state          = CameraTransitionState.TRANSITIONING;
        }
コード例 #3
0
        private void TransitionCamera()
        {
            m_totalTime += deltaTime;
            m_alpha      = (m_fadingIn) ? Lerp(0, 1, m_totalTime / m_transitionTime) :
                           Lerp(1, 0, m_totalTime / m_transitionTime);
            SetBackgroundAlpha();

            if (m_totalTime / m_transitionTime >= 1f)
            {
                m_state = (m_fadingIn) ? CameraTransitionState.IDLE_IN
                                       : CameraTransitionState.IDLE_OUT;

                m_callback?.Invoke();
            }
        }