Exemplo n.º 1
0
    public void PlayClip(AudioClip clip, Vector3 position, float duration, bool loop = false)
    {
        ObjectPooler.Instance.Instantiate(AudioObjectName, position, out var go);
        var source = go.GetComponent <AudioSource>();

        source.clip = clip;
        source.loop = loop;
        source.Play();

        if (!loop)
        {
            UnityRuntime.Invoke(() => { go?.SetActive(false); }, duration);
        }
    }
Exemplo n.º 2
0
    public void PlayRandomClip(IList <AudioClip> clips, float duration)
    {
        ObjectPooler.Instance.Instantiate(AudioObjectName, Camera.main.transform.position, out var go);
        var source = go.GetComponent <AudioSource>();

        var clip = clips.RandomObject();

        while (clip == _lastPlayedClip)
        {
            clip = clips.RandomObject();
        }

        _lastPlayedClip = clip;

        source.clip = clip;
        source.loop = false;
        source.Play();

        UnityRuntime.Invoke(() => { go?.SetActive(false); }, duration);
    }
Exemplo n.º 3
0
 public void PlayClipDelayed(AudioClip clip, float delay)
 {
     UnityRuntime.Invoke(() => PlayClip(clip), delay);
 }