public void SetTrackVolume(MusicMixerTrack track, float volume) { var source = m_sources.Find(s => s.track == track); if (source != null) { source.state = MusicMixerSource.State.Playing; source.audioSource.volume = Mathf.Clamp(volume, 0.0f, source.track.maxVolume); } }
public void AddTrack(MusicMixerTrack track) { if (track.clip == null) { return; } bool clipIsPlaying = m_sources.Where(s => s.track.clip == track.clip).Count() != 0; if (!clipIsPlaying) { var audioSource = gameObject.AddComponent <AudioSource>(); audioSource.clip = track.clip; audioSource.volume = 0.0f; audioSource.loop = !track.playOnce; audioSource.Play(); var source = new MusicMixerSource(track); source.audioSource = audioSource; source.state = MusicMixerSource.State.FadeIn; m_sources.Add(source); } }
public MusicMixerSource(MusicMixerTrack track) { this.track = track; }