Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    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);
        }
    }
Beispiel #3
0
 public MusicMixerSource(MusicMixerTrack track)
 {
     this.track = track;
 }