revival/game/Assets/Scripts/Dialogue/DialogueSettings.cs

36 lines
1012 B
C#
Raw Normal View History

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<string, AudioClip> _keyClips = new Dictionary<string, AudioClip>();
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;
}
}
}