캐릭터 레벨에 맞게끔 컨트롤러 내 스킬 세팅 되도록 수정

This commit is contained in:
aube.lee
2025-02-08 01:10:12 +09:00
parent 14a53032e0
commit 2c7f326873
6 changed files with 110 additions and 47 deletions

View File

@@ -29,7 +29,6 @@ namespace TON
if (skillDatas != null)
{
Debug.Log("characterLevel ::: " + characterLevel);
// 사용 가능한 스킬 필터링 (캐릭터 레벨보다 필요 레벨이 낮거나 같은 것만)
List<SkillData> availableSkills = skillDatas
.Where(skill => skill.requiredLevel <= characterLevel)
@@ -37,26 +36,18 @@ namespace TON
.Take(3) // 최대 3개 선택
.ToList();
Debug.Log(availableSkills.Count);
// availableSkills
// 버튼 설정
for (int i = 0; i < buttons.Length; i++)
{
if (i < availableSkills.Count)
{
buttons[i].interactable = true; // 사용 가능
SkillData skillData = skillDatas.Find(skill => skill.slotNumber == i);
skillButtons[i].linkedCharactor = linkedCharactor;
SkillData skillData = skillDatas.Find(skill => skill.slotNumber == i + 1);
skillButtons[i].Initalize(skillData);
}
else
{
buttons[i].interactable = false; // 사용 불가
}
}
}
@@ -78,9 +69,10 @@ namespace TON
linkedCharactor.Attack();
}
public void OnClickSkillButton(string skill)
public void OnClickSkillButton(ControllerUI_SkillButton skill)
{
linkedCharactor.SkillAttack(skill);
linkedCharactor.SkillAttack(skill.skillData.name);
}
}
}

View File

@@ -7,23 +7,25 @@ namespace TON
{
public class ControllerUI_SkillButton : MonoBehaviour
{
public CharacterBase linkedCharactor { get; set; }
public SkillData skillData;
public GameObject skillImage;
public GameObject lockImage;
public Image lockImage;
[SerializeField]
private SerializableDictionary<string, Sprite> skillSprite = new SerializableDictionary<string, Sprite>();
public void Initalize(SkillData skillData)
{
Debug.Log($"Initalize :: {skillData.id}");
this.skillData = skillData;
// this.linkedCharactor = linkedCharactor; // 씬에서 캐릭터 찾기
Debug.Log(linkedCharactor.name);
skillImage.SetActive(true);
skillImage.GetComponent<Image>().sprite = skillSprite.GetValueOrDefault(skillData.id, null);
lockImage.SetActive(false);
}
public void OnClickSkillButton()
{
linkedCharactor.SkillAttack(skillData.id);
}
}