using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.PlayerLoop; public class SoundEffectLibrary : MonoBehaviour { [SerializeField] private SoundEffectGroup[] soundEffectGroups; private Dictionary> soundDictionary; private void Awake() { InitializeDictionary(); } private void InitializeDictionary() { soundDictionary = new Dictionary>(); foreach (SoundEffectGroup soundEffectGroup in soundEffectGroups) { soundDictionary[soundEffectGroup.name] = soundEffectGroup.audioClips; // Get list of audio clips to add to dictionary under name } } public AudioClip GetRandomClip(string name) { if (soundDictionary.ContainsKey(name)) { List audioClips = soundDictionary[name]; if (audioClips.Count > 0) { return audioClips[UnityEngine.Random.Range(0, audioClips.Count)]; } } return null; } } [System.Serializable] public struct SoundEffectGroup { public string name; public List audioClips; }