using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayMultipleSounds : MonoBehaviour { [SerializeField] AudioSource _audioSource; [SerializeField] AudioClip[] _audioClip; [HideInInspector] public bool ClipStopped; private bool ClipPlayed; private void OnTriggerEnter(Collider col) { if (col.gameObject.tag == "Player" && !ClipPlayed) { StartCoroutine(PlayRandomClip()); print("Play random clip"); } } IEnumerator PlayRandomClip() { while (!ClipStopped) { foreach (AudioClip audioClip in _audioClip) { AudioClip clip = GetRandomClip(); if (!_audioSource.isPlaying) { _audioSource.PlayOneShot(clip); } } yield return null; } } private void OnTriggerExit(Collider col) { if (col.gameObject.tag == "Player") { ClipPlayed = true; } } private AudioClip GetRandomClip() //Gets a random clip sound from the array. { return _audioClip[UnityEngine.Random.Range(0, _audioClip.Length)]; } }