OldBlueWater/BlueWater/Assets/02.Scripts/Skill/SkillController.cs
NTG_Lenovo 4a70315d56 Spine 런타임 에셋 추가
+ iDamageable 관통률 삭제
+ #44 스킬 시스템 구성 및 임시 스킬 FireBoom 작업
2023-11-01 16:39:12 +09:00

45 lines
1.3 KiB
C#

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;
}
}
}