Esempio n. 1
0
    void Start()
    {
        sequence = gameObject.AddComponent <AudioSequence>();
        sequence.Play(introClip, loopClip);
        AudioSequenceData data = sequence.GetData(loopClip);

        data.source.loop = true;
    }
Esempio n. 2
0
 public AudioSequenceData GetData(AudioClip clip)
 {
     if (!playMap.ContainsKey(clip))
     {
         AudioSource source = gameObject.AddComponent <AudioSource>();
         source.clip   = clip;
         playMap[clip] = new AudioSequenceData(source);
     }
     return(playMap[clip]);
 }
Esempio n. 3
0
 public void Boot()
 {
     if (GetComponent <Game>().playMusic)
     {
         sequence = gameObject.AddComponent <AudioSequence>();
         sequence.Play(introClip, loopClip);
         AudioSequenceData data = sequence.GetData(loopClip);
         data.source.loop = true;
     }
 }
Esempio n. 4
0
    double GetNextStartTime()
    {
        AudioSequenceData lastToPlay = GetLast();

        if (lastToPlay != null && lastToPlay.endTime > AudioSettings.dspTime)
        {
            return(lastToPlay.endTime);
        }
        else
        {
            return(AudioSettings.dspTime);
        }
    }
Esempio n. 5
0
    AudioSequenceData GetLast()
    {
        double            highestEndTime = double.MinValue;
        AudioSequenceData lastData       = null;

        foreach (AudioSequenceData data in playMap.Values)
        {
            if (data.isScheduled && data.endTime > highestEndTime)
            {
                highestEndTime = data.endTime;
                lastData       = data;
            }
        }
        return(lastData);
    }
Esempio n. 6
0
    AudioSequenceData GetFirst()
    {
        double            lowestStartTime = double.MaxValue;
        AudioSequenceData firstData       = null;

        foreach (AudioSequenceData data in playMap.Values)
        {
            if (data.isScheduled && data.startTime < lowestStartTime)
            {
                lowestStartTime = data.startTime;
                firstData       = data;
            }
        }
        return(firstData);
    }
Esempio n. 7
0
    public void Play(params AudioClip[] clips)
    {
        if (playMode == PlayMode.Stopped)
        {
            playMode = PlayMode.Playing;
        }
        else if (playMode == PlayMode.Paused)
        {
            UnPause();
        }
        double startTime = GetNextStartTime();

        for (int i = 0; i < clips.Length; ++i)
        {
            AudioClip         clip = clips[i];
            AudioSequenceData data = GetData(clip);
            data.Schedule(startTime);
            startTime         += clip.length;
            data.source.volume = PlayerOptions.Volume;
        }
    }