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 GameObject cachingObj; private void Awake() { Initialize(); } private void Initialize() { skillDictionary = new Dictionary(skillObjList.Count); foreach (var skill in skillObjList) { var activeSkill = skill.GetComponent(); if (activeSkill == null) { print(activeSkill + "오브젝트의 ActiveSkill컴포넌트에 접근할 수 없습니다."); continue; } skillDictionary.Add(activeSkill.GetActiveSkillData().Name, skill); } } public GameObject GetSkillByName(string skillName) { if (skillDictionary.TryGetValue(skillName, out cachingObj)) return cachingObj; print(skillName + "은(는) 스킬 딕셔너리에 존재하지 않습니다."); return null; } } }