내일배움캠프 73일차 TIL - 튜토리얼 제작 일지(2)

권태하·2024년 7월 30일
0
post-thumbnail
post-custom-banner

게임을 구성하는 요소들이 많아지면서 자연스레 설명할 내용들도 늘어났다. 이를 위해 기존에 순차적으로 이뤄진 튜토리얼(비록 FSM이더라도)을 수정하여 버튼을 클릭해서 각각의 튜토리얼에 들어가는 방식으로 구조를 뜯어고쳤다.

각 버튼을 누름에 따라 새 튜토리얼 리스트가 튜토리얼컨트롤러에 참조되어 돌아가게 되고, 끝나면 리스트와 각종 값들을 초기화 시킨다.

이렇게 고치는 와중에는 한 번 실행했던 버튼이 작동 안하는 버그가 있었다.

리스트를 삽입한 구조가

    private List<TutorialBase> tutorials;

    public void StartTutorials(List<TutorialBase> newTutorials)
    {
        tutorials = newTutorials;
        SetNextTutorial();
    }

이와 같았다.

그리고 초기화 코드는

    public void CompletedAllTutorials()
    {
        tutorials = Clear();
    }

이와 같았는데, 이는 리스트가 깊은 복사가 아니라 얕은 복사로 이루어졌기 때문에 원본 리스트가 삭제되는 현상이 발생했다.

그래서 tutorials 변수를 비워주도록 코드를 작성하여 문제를 해결하였다.

    public void CompletedAllTutorials()
    {
        tutorials = Null;
    }
profile
스터디 로그
post-custom-banner

0개의 댓글