fix: 스킬 쿨타임 dimd 영역이 정상적으로 동작하지 않는 오류 수정
This commit is contained in:
@@ -142,8 +142,8 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text:
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 5d9cd0b39cc658540aa28f3dcb744199, type: 2}
|
||||
m_sharedMaterial: {fileID: -3388310998712943579, guid: 5d9cd0b39cc658540aa28f3dcb744199, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
@@ -550,8 +550,8 @@ MonoBehaviour:
|
||||
m_MethodName: OnClickSkillButton
|
||||
m_Mode: 2
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: TON.ControllerUI_SkillButton, Assembly-CSharp
|
||||
m_ObjectArgument: {fileID: 5964648352921021872}
|
||||
m_ObjectArgumentAssemblyTypeName: TON.SkillButtonItem, Assembly-CSharp
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
@@ -573,17 +573,6 @@ MonoBehaviour:
|
||||
coolTimeDimd: {fileID: 561526979871276618}
|
||||
skillIcon: {fileID: 4450630482936255251}
|
||||
lockImage: {fileID: 9104780789004064627}
|
||||
skillBase:
|
||||
<SkillData>k__BackingField:
|
||||
id:
|
||||
name:
|
||||
mpConsumption: 0
|
||||
damage: 0
|
||||
coolDown: 0
|
||||
slotNumber: 0
|
||||
requiredLevel: 0
|
||||
maxHitCount: 0
|
||||
<CurrentCoolDown>k__BackingField: 0
|
||||
--- !u!1 &9104780789004064627
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -69,7 +69,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!224 &5417560988456393388
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -557,7 +557,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
@@ -565,7 +565,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
@@ -605,7 +605,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 120
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
@@ -714,7 +714,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
@@ -722,7 +722,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
@@ -762,7 +762,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 442.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
@@ -933,7 +933,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
@@ -941,7 +941,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
@@ -981,7 +981,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 207.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
@@ -1124,7 +1124,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
@@ -1132,7 +1132,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
@@ -1172,7 +1172,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 500
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
@@ -1202,14 +1202,6 @@ PrefabInstance:
|
||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
|
||||
value:
|
||||
objectReference: {fileID: -4577297331876422106}
|
||||
- target: {fileID: 8637807277690663409, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
|
||||
value:
|
||||
objectReference: {fileID: 169483457724555279}
|
||||
- target: {fileID: 8637807277690663409, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
|
||||
value: TON.SkillButtonItem, Assembly-CSharp
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
@@ -1375,7 +1367,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
@@ -1383,7 +1375,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
@@ -1423,7 +1415,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 260
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
|
||||
@@ -257,11 +257,13 @@ namespace TON
|
||||
callback?.Invoke(true);
|
||||
}
|
||||
|
||||
public void SkillAttack(string skillId)
|
||||
public void SkillAttack(SkillBase skillBase)
|
||||
{
|
||||
SkillBase skillBase = SkillDataManager.Singleton.GetSkillInstance(skillId);
|
||||
if (skillBase == null) return;
|
||||
|
||||
string skillId = skillBase.SkillData.id;
|
||||
|
||||
// 스킬을 사용할 수 있는 스킬포인트가 있는지 판단
|
||||
// 스킬 포인트가 부족하다면 스킬을 수행하지 못함
|
||||
if (currentSP < skillBase.SkillData.mpConsumption) return;
|
||||
|
||||
// 스킬 매니저에서 스킬을 쏠 수 있는지 여부를 판단
|
||||
@@ -278,7 +280,7 @@ namespace TON
|
||||
// 스킬 매니저에 스킬 발사 요청
|
||||
SkillDataManager.Singleton.ExecuteSkill(skillId, firePoint, lastDirection);
|
||||
|
||||
// RecoverSP 가 이미 진행중인 경우 이중으로 코루틴을 실행하지 않도록 함함
|
||||
// RecoverSP 가 이미 진행중인 경우 이중으로 코루틴을 실행하지 않도록 함
|
||||
if (!isRecovering)
|
||||
{
|
||||
StartCoroutine(RecoverSP());
|
||||
|
||||
@@ -14,20 +14,13 @@ namespace TON
|
||||
[SerializeField] private GameObject skillIcon;
|
||||
[SerializeField] private GameObject lockImage;
|
||||
|
||||
public SkillBase skillBase;
|
||||
public SkillBase skillBase { get; private set; }
|
||||
|
||||
|
||||
public void Initalize(SkillBase skillData)
|
||||
{
|
||||
if (skillData != null)
|
||||
{
|
||||
skillData.OnSkillExecuted -= OnSkillExecuted;
|
||||
// skillData.OnCooldownCompleted -= OnCooldownCompleted;
|
||||
}
|
||||
|
||||
// 직접 주어진 skillData 인스턴스 사용
|
||||
skillBase = skillData;
|
||||
skillData.OnSkillExecuted += OnSkillExecuted;
|
||||
// skillData.OnCooldownCompleted += OnCooldownCompleted;
|
||||
|
||||
skillIcon.SetActive(true);
|
||||
|
||||
@@ -36,12 +29,6 @@ namespace TON
|
||||
skillIcon.GetComponent<Image>().sprite = loadedSkillImage;
|
||||
lockImage.SetActive(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void OnSkillExecuted()
|
||||
{
|
||||
UpdateCooldownUI();
|
||||
}
|
||||
|
||||
private void UpdateCooldownUI()
|
||||
@@ -50,13 +37,27 @@ namespace TON
|
||||
{
|
||||
return; // UI가 삭제되었으면 업데이트 중단
|
||||
}
|
||||
|
||||
coolTimeText.gameObject.SetActive(skillBase.CurrentCoolDown > 0); // 남은 쿨타임이 있을 때만 표시
|
||||
|
||||
if (coolTimeText.IsActive())
|
||||
if (skillBase == null)
|
||||
{
|
||||
coolTimeText.text = $"{skillBase.CurrentCoolDown: 0}s"; // 정수 초단위 표시
|
||||
coolTimeDimd.fillAmount = skillBase.CurrentCoolDown / skillBase.SkillCoolDown; // 1 → 0 으로 감소
|
||||
return;
|
||||
}
|
||||
|
||||
SkillBase targetSkill = SkillDataManager.Singleton.GetEquippedSkillFromId(skillBase.SkillData.id);
|
||||
|
||||
// 현재 쿨타임 상태 로그
|
||||
// Debug.Log($"Skill: {skillBase.SkillData.id}, CurrentCoolDown: {targetSkill.CurrentCoolDown}, SkillCoolDown: {targetSkill.SkillCoolDown}");
|
||||
|
||||
// 남은 쿨타임이 있을 때만 표시
|
||||
coolTimeText.gameObject.SetActive(targetSkill.CurrentCoolDown > 0);
|
||||
|
||||
if (targetSkill.CurrentCoolDown > 0)
|
||||
{
|
||||
coolTimeText.text = $"{targetSkill.CurrentCoolDown:0.0}s"; // 소수점 한 자리까지 표시
|
||||
coolTimeDimd.fillAmount = targetSkill.CurrentCoolDown / targetSkill.SkillCoolDown; // 1 → 0 으로 감소
|
||||
}
|
||||
else
|
||||
{
|
||||
coolTimeDimd.fillAmount = 0; // 쿨타임이 없으면 딤드 효과 제거
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Assertions;
|
||||
|
||||
namespace TON
|
||||
{
|
||||
@@ -51,8 +49,13 @@ namespace TON
|
||||
return;
|
||||
|
||||
foreach (var skill in equippedSkills)
|
||||
{
|
||||
if (skill != null)
|
||||
{
|
||||
UpdateSkillCoolDown(skill.SkillData.id);
|
||||
Debug.Log($"Updating cooldown for skill {skill.SkillData.id}: {skill.CurrentCoolDown}");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,39 +172,55 @@ namespace TON
|
||||
return equippedSkills;
|
||||
}
|
||||
|
||||
public SkillBase GetEquippedSkillFromId(string skillId)
|
||||
{
|
||||
SkillBase targetSkillBase = null;
|
||||
foreach (SkillBase skill in equippedSkills)
|
||||
{
|
||||
if (skill != null && skill.SkillData.id == skillId)
|
||||
{
|
||||
targetSkillBase = skill;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return targetSkillBase;
|
||||
}
|
||||
|
||||
// 스킬 슬롯에 적용될 스킬 리스트 초기화 및 업데이트에 사용
|
||||
public List<SkillBase> GetActiveSkillInstance()
|
||||
{
|
||||
if (equippedSkills != null)
|
||||
if (equippedSkills == null)
|
||||
{
|
||||
equippedSkills = new List<SkillBase>();
|
||||
}
|
||||
else
|
||||
{
|
||||
equippedSkills.Clear();
|
||||
}
|
||||
|
||||
foreach (SkillData skill in skillDatas)
|
||||
for (int slot = 1; slot <= 3; slot++)
|
||||
{
|
||||
if (skill.slotNumber == 1 || skill.slotNumber == 2 || skill.slotNumber == 3)
|
||||
SkillData skill = skillDatas.Find(s => s.slotNumber == slot);
|
||||
if (skill != null && skillInstances.ContainsKey(skill.id))
|
||||
{
|
||||
// Debug.Log("GetActiveSkillInstance() : " + skill.id);
|
||||
equippedSkills.Add(skillInstances.GetValueOrDefault(skill.id));
|
||||
// 바로 skillInstances에서 가져옴
|
||||
equippedSkills.Add(skillInstances[skill.id]);
|
||||
}
|
||||
else
|
||||
{
|
||||
equippedSkills.Add(null); // 빈 슬롯을 위해 null 추가
|
||||
}
|
||||
equippedSkills.Sort((a, b) => a.SkillData.slotNumber.CompareTo(b.SkillData.slotNumber));
|
||||
return equippedSkills;
|
||||
}
|
||||
|
||||
// 스킬 쿨타임 설정하는 메소드
|
||||
public void SetCoolTime(string skillId)
|
||||
{
|
||||
if (skillInstances.TryGetValue(skillId, out SkillBase skillBase))
|
||||
{
|
||||
skillBase.SetCurrentCoolDown();
|
||||
}
|
||||
return equippedSkills;
|
||||
}
|
||||
|
||||
// 스킬 쿨타임 업데이트 메소드
|
||||
public void UpdateSkillCoolDown(string skillId)
|
||||
{
|
||||
if (skillInstances.TryGetValue(skillId, out SkillBase skillBase))
|
||||
SkillBase skillBase = equippedSkills.Find(skill => skill != null && skill.SkillData.id == skillId);
|
||||
if (skillBase != null)
|
||||
{
|
||||
skillBase.UpdateSkill(Time.deltaTime);
|
||||
}
|
||||
@@ -226,10 +245,13 @@ namespace TON
|
||||
// 스킬 생성
|
||||
GameObject effectGameObject = ObjectPoolManager.Instance.GetEffect(skillId);
|
||||
Projectile projectile = effectGameObject.GetComponent<Projectile>();
|
||||
SkillBase targetSkillBase = GetSkillInstance(skillId);
|
||||
|
||||
// equippedSkills에서 해당 스킬 찾기
|
||||
SkillBase targetSkillBase = GetEquippedSkillFromId(skillId);
|
||||
|
||||
// 현재 스킬의 쿨타임 시작
|
||||
targetSkillBase.SetCurrentCoolDown();
|
||||
// Debug.Log($"스킬 쿨타임 설정: {skillId}, 쿨타임: {targetSkillBase.CurrentCoolDown}");
|
||||
|
||||
// 스킬 투사체 초기화
|
||||
projectile.Init(targetSkillBase.SkillData.damage, targetSkillBase.SkillData.maxHitCount);
|
||||
@@ -245,16 +267,10 @@ namespace TON
|
||||
Rigidbody2D skillRb = effectGameObject.GetComponent<Rigidbody2D>();
|
||||
skillRb.velocity = new Vector2(lastDirection * 5f, 0f);
|
||||
|
||||
// 이벤트 발생
|
||||
targetSkillBase.OnSkillExecuted?.Invoke();
|
||||
}
|
||||
|
||||
public SkillBase GetSkillInstance(string skillId)
|
||||
{
|
||||
// 스킬 베이스가 null일때 방어로직 추가
|
||||
SkillBase result = skillInstances.GetValueOrDefault(skillId);
|
||||
Assert.IsNotNull(result, "SkillDataManager.ExecuteSkill() : targetSkillBase is null");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -61,9 +61,11 @@ namespace TON
|
||||
SkillButtonItem newSkillButton = Instantiate(skillButtonPrefab, skillButtonGroup);
|
||||
newSkillButton.gameObject.SetActive(true);
|
||||
|
||||
if (i < activatedSkills.Count) // 해당 인덱스에 활성화된 스킬이 있을 경우
|
||||
if (i < activatedSkills.Count && activatedSkills[i] != null) // 해당 인덱스에 활성화된 스킬이 있을 경우
|
||||
{
|
||||
// 직접 equippedSkills의 인스턴스를 전달
|
||||
newSkillButton.Initalize(activatedSkills[i]);
|
||||
newSkillButton.GetComponent<Button>().interactable = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -79,7 +81,7 @@ namespace TON
|
||||
{
|
||||
userItem = PlayerDataManager.Singleton.userItem;
|
||||
|
||||
// 게임 진입 시 포션 초기 수량 세팅팅
|
||||
// 게임 진입 시 포션 초기 수량 세팅
|
||||
hpPotion = userItem.hpPotion >= potionLimit ? potionLimit : userItem.hpPotion;
|
||||
mpPotion = userItem.mpPotion >= potionLimit ? potionLimit : userItem.mpPotion;
|
||||
|
||||
@@ -141,7 +143,10 @@ namespace TON
|
||||
|
||||
public void OnClickSkillButton(SkillButtonItem button)
|
||||
{
|
||||
linkedCharactor.SkillAttack(button.skillBase.SkillData.id);
|
||||
if (button.skillBase != null)
|
||||
{
|
||||
linkedCharactor.SkillAttack(button.skillBase);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -67,9 +67,12 @@ namespace TON
|
||||
// 슬롯 번호에 맞게 스킬을 매핑
|
||||
Dictionary<int, SkillBase> skillMap = new Dictionary<int, SkillBase>();
|
||||
foreach (var skill in activatedSkills)
|
||||
{
|
||||
if (skill != null)
|
||||
{
|
||||
skillMap[skill.SkillData.slotNumber - 1] = skill;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user