示例#1
0
 private void ActualPlay(BgmPlayListTrack track)
 {
     m_RightSource.clip = track.m_clip;
     m_RightSource.loop = false;             // we do not use looping feature of sound source, instead we manually replay the bgm
     m_CrossfadeTime    = track.m_crossfadeTime;
     m_BgmCrossfader    = 0.0f;
     m_isStopped        = false;
     m_hasChangeRequest = true;
 }
示例#2
0
        // This plays a single music clip for playback. (This is implemented as playing
        // a playlist with a single track inside)
        public void Play(AudioClip clip, bool loop = true, float crossfadeTime = 0.0f)
        {
            // create single track playlist
            BgmPlayListTrack track = new BgmPlayListTrack();

            track.m_clip          = clip;
            track.m_crossfadeTime = crossfadeTime;
            List <BgmPlayListTrack> playlist = new List <BgmPlayListTrack>();

            playlist.Add(track);
            m_playlist    = playlist;
            m_trackNumber = -1;
            m_isLooping   = loop;
            PlayNextTrack();
        }
示例#3
0
    // A helper function that creates and returns a playlist from a given string array of sound ids.
    public List <BgmPlayListTrack> CreatePlaylist(string[] ids, float crossfadeTime = 0.0f)
    {
        if (ids == null)
        {
            return(null);
        }

        List <BgmPlayListTrack> playlist = new List <BgmPlayListTrack>();

        foreach (string id in ids)
        {
            if (m_library.ContainsKey(id))
            {
                BgmPlayListTrack track = new BgmPlayListTrack();
                track.m_clip          = m_library[id].AudioClipFile;
                track.m_crossfadeTime = crossfadeTime;
                playlist.Add(track);
            }
        }

        return(playlist);
    }
示例#4
0
        private bool IsPlaylistIdentical(ref List <BgmPlayListTrack> playlist, bool contentwiseCheck = false)
        {
            if (!contentwiseCheck)
            {
                return(playlist == m_playlist);
            }

            if (playlist.Count != m_playlist.Count)
            {
                return(false);
            }

            for (int i = 0; i < playlist.Count; ++i)
            {
                BgmPlayListTrack track = playlist[i];
                if (track.m_clip != m_playlist[i].m_clip || track.m_crossfadeTime != m_playlist[i].m_crossfadeTime)
                {
                    return(false);
                }
            }

            return(true);
        }