//=================================== // Method //=================================== public FadeMusicShot(float start, float end, float duration, IMusicPlayback playback) { Playback = playback; StartValue = start; EndValue = end; Duration = duration; }
public void PlayMusic(string path, float transitionTime, bool looping = true) { if (path == null) { // Stop music if (m_music != null) { m_music.FadeToVolume(0.0f, transitionTime, true); m_music = null; } } else { // Switch or continue music if (m_music == null || m_music.Music.Path != path || m_music.Stopped) { if (m_music != null) { m_music.FadeToVolume(0.0f, transitionTime, true); m_music = null; } m_music = m_audio.PlayMusic(path, looping, transitionTime); } } }
public GameAudio(IAudio audio) { m_audio = audio; m_listener = new AudioListener(); m_rate = 1.0f; m_music = null; m_sounds = new List <PlayingSound>(); m_frame = 0; }
//========================================= // Method //========================================= public override IMusicShot Shot(IMusicPlayer player, IMusicPlayback playback) { var playlist = player.PlayList; var list = new List <IMusicShot>(); foreach (var p in playlist) { var fadeOut = new FadeOutMusicShot(m_duration, p); list.Add(fadeOut); } if (playback != null) { var fadeIn = new FadeInMusicShot(m_duration, playback); list.Add(fadeIn); } return(new ParallelMusicShot(list)); }
public abstract IMusicShot Shot(IMusicPlayer player, IMusicPlayback playback);
public FadeInMusicShot(float duration, IMusicPlayback playback) : base(0, 1, duration, playback) { }
public FadeOutMusicShot(float duration, IMusicPlayback playback) : base(playback.Volume, 0, duration, playback) { }
protected override void DoDispose() { Playback = default; }