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

45 lines
1.3 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, ISkill> skillDictionary;
private ISkill cachingSkill;
private void Awake()
{
Initialize();
}
private void Initialize()
{
skillDictionary = new Dictionary<string, ISkill>(skillObjList.Count);
foreach (var skill in skillObjList)
{
var iSkill = skill.GetComponent<ISkill>();
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;
}
}
}