Esempio n. 1
0
    protected void Update()
    {
        // Skip key
        if( m_SkipMode != SkipModes.NoSkip && ( Input.GetKeyUp( m_SkipKey ) || Input.touchCount > 0 ) )
        {
            // We end the current slide but accumulating time equivalent to the slide's show time.
            m_TimeAccum += ( m_SplashScreens[ m_CurrentIndex ].m_TimeToShow
                - Timers.Instance.Game.GetDeltaTime() - m_TimeAccum );

            if( m_SkipMode == SkipModes.SkipToExit )
            {
                // if skip to exit is chosen, we just set to the final slide.
                m_CurrentIndex = m_SplashScreens.Length - 1;
            }
        }

        if( m_State == SplashScreenLifecycle.Display )
        {
            m_TimeAccum += Timers.Instance.Game.GetDeltaTime();
            if( m_TimeAccum >= m_SplashScreens[ m_CurrentIndex ].m_TimeToShow )
            {
                m_NextIndex = m_CurrentIndex + 1;
                if( m_NextIndex < m_SplashScreens.Length )
                {
                    m_Fader.SetTransitionCallback( OnFinishTransition );
                    m_Fader.FadeOut();
                    m_State = SplashScreenLifecycle.FadeOut;
                }
                else
                {
                    m_State = SplashScreenLifecycle.Exit;
                }

            }
        }

        if( m_State == SplashScreenLifecycle.FadeOutComplete )
        {
            m_CurrentIndex = m_NextIndex;
            Renderer splashObjectRenderer = m_SplashObject.GetComponent< Renderer >() as Renderer;
            if( splashObjectRenderer )
            {
                splashObjectRenderer.material.mainTexture = m_SplashScreens[ m_CurrentIndex ].m_SplashImage;
            }
            m_Fader.SetTransitionCallback( OnFinishTransition );
            m_Fader.FadeIn();
            m_State = SplashScreenLifecycle.FadeIn;
        }

        if( m_State == SplashScreenLifecycle.FadeInComplete )
        {
            m_TimeAccum = 0.0f;
            m_State = SplashScreenLifecycle.Display;
        }

        if( m_State == SplashScreenLifecycle.Exit )
        {
            SceneManager.Instance.LoadScene( m_sceneToLoadNext, m_useTransitionOnSceneLoad, m_useCleanupOnSceneLoad );
            enabled = false;
        }
    }
Esempio n. 2
0
 protected void OnFinishTransition( Fader.CallbackStates state, bool isFadeIn )
 {
     if( isFadeIn )
     {
         m_State = SplashScreenLifecycle.FadeInComplete;
     }
     else
     {
         m_State = SplashScreenLifecycle.FadeOutComplete;
     }
 }