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; } }
// 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); }
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); } } } }
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; } } }
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); }
// 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)); }