using System; using System.Collections.Generic; using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { [Serializable] public class SkillController : MonoBehaviour { [SerializeField] private ActiveSkillSo activeSkillDataSo; private Dictionary activeSkillDictionary; private ActiveSkill cachingObj; private void Awake() { Init(); } private void Init() { activeSkillDictionary = new Dictionary(activeSkillDataSo.ActiveSkillList.Count); foreach (var activeSkill in activeSkillDataSo.ActiveSkillList) { activeSkillDictionary.Add(activeSkill.ActiveSkillData.Name, activeSkill); } } public ActiveSkill InstantiateActiveSkillByName(string skillName) { var instantiateActiveSkill = Instantiate(GetSkillByName(skillName)); if (instantiateActiveSkill == null) { print("스킬을 생성할 수 없습니다."); return null; } return instantiateActiveSkill; } public ActiveSkill GetSkillByName(string skillName) { if (activeSkillDictionary.TryGetValue(skillName, out cachingObj)) return cachingObj; print(skillName + "은(는) 스킬 딕셔너리에 존재하지 않습니다."); return null; } } }