using System.Collections.Generic; using System.Linq; using UnityEngine; namespace AibisDream.Kit { public class ConfigUtil : SingletonBase { private const string CharacterConfigPath = "/Config/character.csv"; private const string BaseConfigPath = "/Config/base_config.csv"; private Dictionary _baseConfigDic; private Dictionary _characters; /// /// 用于单例模式 /// private ConfigUtil() {} /// /// 调用时初始化 /// public override void OnSingletonInit() { InitBaseConfig(); InitCharacterConfig(); } private void InitBaseConfig() { var baseList = CsvUtil.Read(Application.streamingAssetsPath + BaseConfigPath); if (baseList.Count <= 0) { Debug.Log("基础配置不存在"); } // 基础配置只有key和value _baseConfigDic = new Dictionary(); foreach (var arr in baseList) { _baseConfigDic.Add(arr[0], arr[1]); } } private void InitCharacterConfig() { var characterList = CsvUtil.ReadAsBean(Application.streamingAssetsPath + CharacterConfigPath); _characters = characterList.ToDictionary(item => item.Key, item => item); } /// /// 按key获取角色预设 /// /// key /// 角色配置 /// 是否能获取 public bool TryGetCharacter(string key, out Character character) { return _characters.TryGetValue(key, out character); } /// /// 按key获取基础配置 /// /// key /// 配置项 /// 是否能获取 public bool TryGetBaseConfig(string key, out string value) { return _baseConfigDic.TryGetValue(key, out value); } } }