유니티엔진 질문입니다.

조회수 1283회
// skilltree클래스
    void Start()
    {
        SetSkill("Mage");
    }

 protected void SetSkill(string Class)
    {
        GameObject temp = Instantiate(SkilltoryManager.Instance.skillObject);

        temp.AddComponent<SkillScript>();

        SkillScript newSkill = temp.GetComponent<SkillScript>();

        for (int i = 0; i < SkilltoryManager.Instance.SkillContainer.Heal.Count; i++)
        {
            newSkill.Skill = SkilltoryManager.Instance.SkillContainer.Heal[i];
            if (newSkill != null && newSkill.Skill.SkillClass.ToString() == Class)
            {

                SkilltoryManager.Instance.AvailbeSkill.Add(newSkill);
            }
        }

            for (int i = 0; i < SkilltoryManager.Instance.AvailbeSkill.Count; i++)
        {

            AddSkill(SkilltoryManager.Instance.AvailbeSkill[i]);


        }
    }

    public void AddSkill(SkillScript skill)
    {
        if (emptySlots > 0)
        {
            foreach (SkillSlot slot in SkillSlots)
            {
                if (slot.Empty)
                {
                    slot.AddSkill(skill);
                    break;
                }
            }
        }
    }


// SkillSlot 클래스의 AddSkill

    public bool Empty;
    public bool QuickSlot;
    public bool isUsable;
    public bool clickAlbe;

    public Text SkillLevelText;
    private SkillScript skill;

    public SkillScript Skill
    {
        get { return skill; }
        set { skill = value; }
    }

    public void AddSkill(SkillScript skill)
    {
        if (Empty && name!= "SkillHover")
        {
            transform.parent.parent.GetComponent<SkillTree>().EmptySlots--;
            Empty = false;
        }

        this.skill = skill;
        ChangeSprite(skill.skillNeutral);
    }

availableSkill리스트에 사용가능한 스킬들을 담고,

리스트에 있는 스킬들을 순서대로 skillslot들에 하나하나씩 넣어줍니다. 문제는

위처럼 리스트로 만들어보기도하고 여러가지 방법을 써보았는데

위 과정에서 SetSkill에서는 디버그시 확실히 스킬들을 순서대로 전달합니다.

그런데 마지막 스킬이 add되면 리스트의 모든 스킬들이 마지막 스킬로 덮어씌워집니다.

왜이런거죠?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)