using System; using System.Collections.Generic; using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { [Serializable] public class SkillController : MonoBehaviour { [SerializeField] private List skillObjList = new(GlobalValue.SKILL_DATA_CAPACITY); private Dictionary skillDictionary; private ISkill cachingSkill; private void Awake() { Initialize(); } private void Initialize() { skillDictionary = new Dictionary(skillObjList.Count); foreach (var skill in skillObjList) { var iSkill = skill.GetComponent(); if (iSkill == null) { print(skill + "오브젝트의 ISkill컴포넌트에 접근할 수 없습니다."); continue; } skillDictionary.Add(iSkill.Name, iSkill); } } public ISkill GetSkillByName(string skillName) { if (skillDictionary.TryGetValue(skillName, out cachingSkill)) return cachingSkill; print(skillName + "은(는) 스킬 딕셔너리에 존재하지 않습니다."); return null; } } }