コード例 #1
0
    private void Play(AudioClipVolume a)
    {
        var now = Time.timeSinceLevelLoad;

        if (_lastPlayed.TryGetValue(a.clip.name, out var lastPlayed) && now - lastPlayed < repeatCooldown)
        {
            return;
        }

        _lastPlayed[a.clip.name] = now;
        sfx.Play(a);
    }
コード例 #2
0
ファイル: AudioPlayer.cs プロジェクト: leiapollos/Quest-Game
 public void PlayOnce(string name, float volumeScale)
 {
     if (clips.ContainsKey(name))
     {
         AudioClipVolume clip   = clips[name];
         var             source = gameObject.AddComponent <AudioSource>();
         source.volume = clip.volume * volumeScale;
         source.clip   = clip.clip;
         source.loop   = false;
         oneShotSources.Add(source);
         source.Play();
     }
     else
     {
         throw new AudioClipNotFoundException(name);
     }
 }
コード例 #3
0
ファイル: AudioPlayer.cs プロジェクト: leiapollos/Quest-Game
 public void PlayLoop(string name, float FadeTime)
 {
     if (clips.ContainsKey(name))
     {
         if (!loopSources.ContainsKey(name))
         {
             AudioClipVolume clip   = clips[name];
             var             source = gameObject.AddComponent <AudioSource>();
             source.clip       = clip.clip;
             source.loop       = true;
             loopSources[name] = source;
             source.Play();
             StartCoroutine(FadeIn(source, clip.volume, FadeTime));
         }
     }
     else
     {
         throw new AudioClipNotFoundException(name);
     }
 }
コード例 #4
0
 public void Play(AudioClipVolume c) => Play(c.clip, c.volume);