using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = "KernelPanic/Dialogue/Settings")] public class DialogueSettings : ScriptableObject { public float HideAfter => _hideAfter; [SerializeField] private float _hideAfter; public string RadioDialogueKey => _radioDialogueKey; [SerializeField] private string _radioDialogueKey; [SerializeField] private AudioClip[] _dialogueClips; private readonly Dictionary _keyClips = new Dictionary(); public AudioClip GetDialogueClip(string key) { if (!_keyClips.ContainsKey(key)) { Debug.LogError($"no clip for key {key}"); return null; } return _keyClips[key]; } private void OnEnable() { foreach (var dialogueClip in _dialogueClips) { _keyClips[dialogueClip.name] = dialogueClip; } } }