[TIL] 37일차 - 팀 프로젝트 마무리

김유원·2024년 2월 15일
0

📝 24.02.15

정신이 없다.😅 어찌저찌 팀 프로젝트를 마무리 했다. 오늘은 하루종일 사소한 오류나 부족한 기능들을 구현하는 데 소비했다.

오늘 고친 것 중 가장 기억에 남는 것은 이것이다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SkillTreeController : MonoBehaviour
{
    [SerializeField] List<GameObject> skillTrees;
    [SerializeField] List<Animator> linesAnim;

    public static SkillTreeController instance;

    private void Awake()
    {
        instance = this;
    }

    void Start()
    {
        LoadUnlocked();
        UnlockInteract();
    }


    public void UnlockInteract()
    {
        for(int i = 1; i < skillTrees.Count; i++)
        {
            SkillTree tree = skillTrees[i].GetComponent<SkillTree>();
            SkillTree prevTree = tree.prevTree;
            Button btn = skillTrees[i].GetComponent<Button>();

            if(prevTree.isUnlocked && !tree.isUnlocked)
            {
                btn.interactable = true;
                linesAnim[i-1].SetBool("isInteractable", true);
            } else
            {
                btn.interactable = false;
                if(tree.isUnlocked)
                {
                    linesAnim[i - 1].SetTrigger("Unlocked");
                }
            }
        }

        SaveUnlocked();
    }

    private void SaveUnlocked()
    {
        for(int i = 0; i < skillTrees.Count; i++)
        {
            SkillTree tree = skillTrees[i].GetComponent<SkillTree>();

            SkillManager.instance.SaveUnlocked(i, tree.isUnlocked);
        }
    }

    private void LoadUnlocked()
    {
        for (int i = 0; i < skillTrees.Count; i++)
        {
            SkillTree tree = skillTrees[i].GetComponent<SkillTree>();

            tree.isUnlocked = SkillManager.instance.treeUnlocked[i];
        }
    }
}

기존의 SkillTreeController에는 UnlockInteract()만 있었다. 하지만, 이 경우에는 스킬트리 씬에서 다른 씬으로 나갔다가 돌아오면 기존의 스킬트리 해금 여부가 모두 초기화된다.

그래서 SkillManager와 연동하여 SaveUnlocked()LoadUnlocked()를 추가하여 글로벌하게 저장되도록 구현했다.

이외에도 다양한 것을 고쳤지만 일단 오늘은 이것을 작성할 힘밖에 남아있지 않아 이만 오늘자 TIL을 줄이겠다. 내일 프로젝트 전반의 트러블슈팅을 정리해볼 예정이다.




오랜만에 알고리즘 문제 풀이를 했다.
복잡도 등의 성능도 이젠 신경써야 할 것 같다.

📕 [프로그래머스] 덧칠하기

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보