using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(AudioSource))] public class RandomizeAudioClipFromList : MonoBehaviour { [SerializeField] private List possibleClips = new List(); [SerializeField] private bool playOnStart = false; [Space] [SerializeField] private bool useDelay = false; [SerializeField] private float delay = 0.2f; [Space] [SerializeField] private float pitchVariation = 0.05f; [SerializeField] private bool usePitchVariation = false; AudioSource audioSource; int chosenIndex; private void Awake() { audioSource = GetComponent(); chosenIndex = Random.Range(0, possibleClips.Count); audioSource.clip = possibleClips[chosenIndex]; if (usePitchVariation) audioSource.pitch = 1f + (Random.Range(-pitchVariation, +pitchVariation)); } // Start is called before the first frame update IEnumerator Start() { if (playOnStart) { if(useDelay) { yield return new WaitForSeconds(delay); } Play(); } yield return null; } public void Play() { audioSource.Play(); } }