
+ 03.Stage_Test_SJ2 셋팅 동기화(지형 수정) + LuneRush 스킬 메커니즘 변경 + LineRush 스킬 돌진 횟수 설정 기능 추가 + LavaBubbleBullet 스킬(원거리 투사체) 추가 + ParticleWeapon(원거리 투사체) 스크립트 수정 + ActiveSkill의 Target 자료형(Transform -> Collider) 변경 + FieldBoss01 BT 수정
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
namespace BlueWaterProject
|
|
{
|
|
[Serializable]
|
|
public class SkillController : MonoBehaviour
|
|
{
|
|
[SerializeField] private ActiveSkillSo activeSkillSo;
|
|
private Dictionary<string, ActiveSkill> activeSkillDictionary;
|
|
|
|
private ActiveSkill cachingObj;
|
|
|
|
private void Awake()
|
|
{
|
|
Init();
|
|
}
|
|
|
|
private void Init()
|
|
{
|
|
activeSkillDictionary = new Dictionary<string, ActiveSkill>(activeSkillSo.ActiveSkillList.Count);
|
|
|
|
foreach (var activeSkill in activeSkillSo.ActiveSkillList)
|
|
{
|
|
activeSkillDictionary.Add(activeSkill.ActiveSkillData.Name, activeSkill);
|
|
}
|
|
}
|
|
|
|
public ActiveSkill InstantiateActiveSkillByName(string skillName)
|
|
{
|
|
var instantiateActiveSkill = Instantiate(GetSkillByName(skillName));
|
|
if (instantiateActiveSkill == null)
|
|
{
|
|
print("스킬을 생성할 수 없습니다.");
|
|
return null;
|
|
}
|
|
|
|
return instantiateActiveSkill;
|
|
}
|
|
|
|
public ActiveSkill GetSkillByName(string skillName)
|
|
{
|
|
if (activeSkillDictionary.TryGetValue(skillName, out cachingObj)) return cachingObj;
|
|
|
|
print(skillName + "은(는) 스킬 딕셔너리에 존재하지 않습니다.");
|
|
return null;
|
|
}
|
|
}
|
|
} |