OldBlueWater/BlueWater/Assets/02.Scripts/Skill/SkillController.cs

45 lines
1.4 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[Serializable]
public class SkillController : MonoBehaviour
{
[SerializeField] private List<GameObject> skillObjList = new(GlobalValue.SKILL_DATA_CAPACITY);
private Dictionary<string, GameObject> skillDictionary;
private GameObject cachingObj;
private void Awake()
{
Initialize();
}
private void Initialize()
{
skillDictionary = new Dictionary<string, GameObject>(skillObjList.Count);
foreach (var skill in skillObjList)
{
var activeSkill = skill.GetComponent<ActiveSkill>();
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;
}
}
}