예제 #1
0
    public void SwitchTrack()
    {
        SceneAudio _audioPlayer = _sceneAudio.GetComponent <SceneAudio>();
        MusicFader _crossFade   = GetComponent <MusicFader>();

        int   _trackId_1    = _audioPlayer._trackId_1;
        int   _trackId_2    = _audioPlayer._trackId_2;
        float _source_vol_1 = _audioPlayer._source_volume_1;
        float _source_vol_2 = _audioPlayer._source_volume_2;

        int currentSource = _audioPlayer._audioSource;

        if (currentSource == 1)
        {
            _audioPlayer.SelectTrack(_trackId_2, 2, _source_vol_2);

            _crossFade.FadeAudio(80.5f, _source_vol_2, _source_vol_1, 3);

            _audioPlayer._audioSource = 2;
        }
        else if (currentSource == 2)
        {
            _audioPlayer.SelectTrack(_trackId_1, 1, _source_vol_1);
            _crossFade.FadeAudio(80.5f, _source_vol_1, _source_vol_2, 3);

            _audioPlayer._audioSource = 1;
        }
    }
예제 #2
0
        // load the scene
        protected override void Load()
        {
            // load fonts
            _font    = Assets.LoadFont("gfx/OpenSans-Regular.ttf", 22, false);
            _fontBig = Assets.LoadFont("gfx/OpenSans-Regular.ttf", 42, false);

            // load font and music
            _music    = Assets.LoadMusic("sfx/old city theme.ogg");
            _altMusic = Assets.LoadMusic("sfx/forest.ogg");
            _sound    = Assets.LoadSound("sfx/phaserUp1.mp3");

            // start playing music via the music fader
            _musicFader = new MusicFader(null, 100, _music, 100);
        }
예제 #3
0
    void Update()
    {
        var soundsToDelete = _sounds.FindAll(sound => !sound.isPlaying);

        foreach (AudioSource sound in soundsToDelete)
        {
            _sounds.Remove(sound);
            Destroy(sound.gameObject);
        }

        if (AutoPause)
        {
            bool curPause = Time.timeScale < 0.1f;
            if (curPause != AudioListener.pause)
            {
                AudioListener.pause = curPause;
            }
        }

        for (int i = 0; i < _musicFadings.Count; i++)
        {
            MusicFader music = _musicFadings[i];
            if (music.audio == null)
            {
                _musicFadings.RemoveAt(i);
                i--;
            }
            else
            {
                music.timer     += Time.unscaledDeltaTime;
                _musicFadings[i] = music;
                if (music.timer >= music.fadingTime)
                {
                    music.audio.volume = music.targetVolume;
                    if (music.destroyOnComplete)
                    {
                        Destroy(music.audio.gameObject);
                    }
                    _musicFadings.RemoveAt(i);
                    i--;
                }
                else
                {
                    float k = Mathf.Clamp01(music.timer / music.fadingTime);
                    music.audio.volume = Mathf.Lerp(music.startVolume, music.targetVolume, k);
                }
            }
        }
    }
예제 #4
0
 void StopFadingForMusic(AudioSource music)
 {
     for (int i = 0; i < _musicFadings.Count; i++)
     {
         MusicFader fader = _musicFadings[i];
         if (fader.audio == music)
         {
             if (fader.destroyOnComplete)
             {
                 Destroy(fader.audio.gameObject);
             }
             _musicFadings.RemoveAt(i);
             return;
         }
     }
 }
예제 #5
0
    private void swapMusic()
    {
        IEnumerator fadeIn;
        IEnumerator fadeOut;

        if (lastStatus)
        {
            fadeIn  = MusicFader.fadeIn(goodMusic, fadeTime, maxVolume);
            fadeOut = MusicFader.fadeOut(badMusic, fadeTime);
        }
        else
        {
            fadeIn  = MusicFader.fadeIn(badMusic, fadeTime, maxVolume);
            fadeOut = MusicFader.fadeOut(goodMusic, fadeTime);
        }
        StartCoroutine(fadeIn);
        StartCoroutine(fadeOut);
    }
예제 #6
0
        // on updates do animations and controls
        protected override void Update(double deltaTime)
        {
            // if user click 'exit' action, exit game
            if (Input.Down("exit"))
            {
                Game.Exit();
            }

            // play sound effects
            if (Input.PressedNow(KeyCodes.Key1))
            {
                Sfx.PlaySound(_sound, 100, 0, 0.25f);
            }
            if (Input.PressedNow(KeyCodes.Key2))
            {
                Sfx.PlaySound(_sound, 100, 0, 0.5f);
            }
            if (Input.PressedNow(KeyCodes.Key3))
            {
                Sfx.PlaySound(_sound, 100, 0, 0.75f);
            }
            if (Input.PressedNow(KeyCodes.Key4))
            {
                Sfx.PlaySound(_sound, 100, 0, 1f);
            }
            if (Input.PressedNow(KeyCodes.Key5))
            {
                Sfx.PlaySound(_sound, 100, 0, 1.25f);
            }
            if (Input.PressedNow(KeyCodes.Key6))
            {
                Sfx.PlaySound(_sound, 100, 0, 1.5f);
            }
            if (Input.PressedNow(KeyCodes.Key7))
            {
                Sfx.PlaySound(_sound, 100, 0, 1.75f);
            }

            // do music switching
            if (Input.PressedNow(KeyCodes.KeyZ))
            {
                _musicFader = new MusicFader(_musicFader.ToTrack, _musicFader.CurrentVolume, _music, 100);
            }
            if (Input.PressedNow(KeyCodes.KeyX))
            {
                _musicFader = new MusicFader(_musicFader.ToTrack, _musicFader.CurrentVolume, _altMusic, 30);
            }

            // pause / resume music
            if (Input.PressedNow(KeyCodes.KeySpace))
            {
                _paused = !_paused;
                Sfx.PauseMusic(_paused);
            }

            // update music fader
            if (_musicFader != null && !_paused)
            {
                _musicFader.Update(deltaTime);
            }
        }
 // Use this for initialization
 void Start()
 {
     StartCoroutine(MusicFader.fadeIn(GetComponent <AudioSource>(), 2f, 1f));
 }