
+ Skill관련 image, material, shader 추가 + ISkill 인터페이스 삭제 + ActiveSkill 메커니즘 변경 + RadiusActiveSkill 구현
45 lines
1.4 KiB
C#
45 lines
1.4 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, 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;
|
|
}
|
|
}
|
|
} |