コード例 #1
0
    /**********************************************************************************/
    // проверяем, не надо ли включить следующий клип
    //
    /**********************************************************************************/
    private void FixedUpdate()
    {
        if (m_state != GAM_STATE.INIT)
        {
            // обновляем таймера
            m_nextTreckSwitch    -= Time.deltaTime;
            m_currentTrackTiming += Time.deltaTime;

            if (m_trackState == TRACK_STATE.PLAY)
            {
                // проверяем время до конца трека
                // если осталось меньше MusicTrackFadeOut - переключаем треки
                if (m_nextTreckSwitch <= MusicTrackFadeOut)
                {
                    PlayNextTrack();
                    m_trackState = TRACK_STATE.SWITCHING;
                }
            }
            else if (m_trackState == TRACK_STATE.SWITCHING)
            {
                // обновляем громкости в зависимости от прошедшего времени
                if (m_currentTrackTiming >= MusicTrackFadeOut)
                {
                    MusicSource1.volume = MusicVolume;
                    MusicSource2.volume = 0.0f;
                    MusicSource2.Stop();
                    m_trackState = TRACK_STATE.PLAY;
                }
                else
                {
                    float volumeChangeSpeed = (MusicVolume / MusicTrackFadeOut) * Time.deltaTime;
                    MusicSource1.volume += volumeChangeSpeed;
                    MusicSource2.volume -= volumeChangeSpeed;
                }
            }

            // проверяем состояние воспроизводимых эффектов
            bool process = true;
            while (process && m_soundeSourceInUseCollections.Count > 0)
            {
                AudioSource source = m_soundeSourceInUseCollections.First.Value;
                // если воспроизведение закончилось, перемещаем дорожку в список свободных
                if (!source.isPlaying)
                {
                    m_soundeSourceInUseCollections.RemoveFirst();
                    m_freeSourceCollections.AddLast(source);
                }
                else
                {
                    // в противном случае прерываем обработку
                    process = false;
                }
            }


            ProcessTimersAndQueue();
        }
    }
コード例 #2
0
    private void Awake()
    {
        if (!TargetDesignatorFrustrum || !TargetDesignatorSphere || !PodCamera)
        {
            Debug.LogWarning(gameObject.name.ToString() + "is missing a reference!");
        }

        TrackingState         = TRACK_STATE.NONE;
        PreviousTrackingState = TRACK_STATE.NONE;

        _areaTrackTime = 1.0f;
        _tmsHoldTime   = 0.0f;
    }
コード例 #3
0
    /**********************************************************************************/
    // парсим звуки, сохраняем всю необходимую информацию
    //
    /**********************************************************************************/
    private void Start()
    {
        // парсим все звуковые эффекты и сохраняем их по ключу
        for (int i = 0; i < SoundAudioSources.Count; i++)
        {
            string key = SoundAudioSources[i].Key;
            m_soundEffectCollection[key] = SoundAudioSources[i];

            // настраиваем таймера и очереди
            m_soundTimers[key] = 0.0f;
            m_soundQueue[key]  = 0;
        }

        // настраиваем изначальное состояние
        m_trackState = TRACK_STATE.SWITCHING;
        m_state      = GAM_STATE.MENU;

        // да будет диско!
        // запускаем музыку
        PlayNextTrack();
    }
コード例 #4
0
 void UpdateTrackingState(TRACK_STATE state)
 {
     PreviousTrackingState = TrackingState;
     TrackingState         = state;
 }
コード例 #5
0
 /**********************************************************************************/
 // переходим в меню
 //
 /**********************************************************************************/
 public void SwitchToMenuMode()
 {
     m_state           = GAM_STATE.MENU;
     m_trackState      = TRACK_STATE.SWITCHING;
     m_nextTreckSwitch = MusicTrackFadeOut;
 }