feat: 슬롯 넘버에 맞춰서 스킬 세팅 UI의 칸에 세팅될 수 있도록 인덱스 오류 수정
This commit is contained in:
@@ -50,7 +50,7 @@ namespace TON
|
|||||||
|
|
||||||
private void SetSkillSlots()
|
private void SetSkillSlots()
|
||||||
{
|
{
|
||||||
// 이미 기존에 UI가 생성되어 있다면 삭제
|
// 기존 UI 삭제
|
||||||
if (createSkillSlots.Count > 0)
|
if (createSkillSlots.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var button in createSkillSlots)
|
foreach (var button in createSkillSlots)
|
||||||
@@ -60,23 +60,32 @@ namespace TON
|
|||||||
createSkillSlots.Clear();
|
createSkillSlots.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 스킬 버튼을 생성
|
// 스킬 버튼 생성
|
||||||
List<SkillBase> activatedSkills = SkillDataManager.Singleton.GetEquippedSkills();
|
List<SkillBase> activatedSkills = SkillDataManager.Singleton.GetEquippedSkills();
|
||||||
int maxEquipSkillCount = SkillDataManager.Singleton.GetActiveSkillCount();
|
int maxEquipSkillCount = SkillDataManager.Singleton.GetActiveSkillCount();
|
||||||
|
|
||||||
|
// 슬롯 번호에 맞게 스킬을 매핑
|
||||||
|
Dictionary<int, SkillBase> skillMap = new Dictionary<int, SkillBase>();
|
||||||
|
foreach (var skill in activatedSkills)
|
||||||
|
{
|
||||||
|
skillMap[skill.SkillData.slotNumber - 1] = skill;
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
SkillSettingUI_SkillSlot newSkillSlot = Instantiate(skillSlotPrefab, skillSlotGroup);
|
SkillSettingUI_SkillSlot newSkillSlot = Instantiate(skillSlotPrefab, skillSlotGroup);
|
||||||
newSkillSlot.gameObject.SetActive(true);
|
newSkillSlot.gameObject.SetActive(true);
|
||||||
|
|
||||||
if (i < activatedSkills.Count) // 해당 인덱스에 활성화된 스킬이 있을 경우
|
if (skillMap.TryGetValue(i, out SkillBase skill))
|
||||||
{
|
{
|
||||||
newSkillSlot.Initalize(activatedSkills[i].SkillData.id, i);
|
// 해당 슬롯에 스킬이 있으면 초기화
|
||||||
|
newSkillSlot.Initalize(skill.SkillData.id, i);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (i == maxEquipSkillCount - 1)
|
if (i < maxEquipSkillCount)
|
||||||
{
|
{
|
||||||
// 만약 스킬을 배치할 수 있는 슬롯이지만 지정된 스킬이 없다면
|
// 스킬을 배치할 수 있는 슬롯이지만 스킬이 없으면 비활성 슬롯으로 표시
|
||||||
newSkillSlot.Initalize(null, i);
|
newSkillSlot.Initalize(null, i);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -84,6 +93,7 @@ namespace TON
|
|||||||
newSkillSlot.GetComponent<Button>().interactable = false;
|
newSkillSlot.GetComponent<Button>().interactable = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createSkillSlots.Add(newSkillSlot);
|
createSkillSlots.Add(newSkillSlot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user