- 트러블 슈팅 : 세이브 & 로드 , TimeScale
세이브 로드
세이브 & 로드 기능을 JSON을 사용해서 구현하기로 했다.
문제가 된 부분은 Monobehaviour가 들어가는 것들은 직렬화가 되지 않아서
오류가 발생하게 되었다. 그래서 진행 중 이였던 MVC화 작업을
저장해야되는 데이터 부터 하기로 우선순위를 변경했다.
Data만을 DataManager에 저장하고 Json으로 직렬화 하여 텍스트 파일을 만들어 저장한후
파일을 로드했을때 각 데이터를 사용하는 Manager들에서 데이터를 가지고 오브젝트들과
연결 시켜주는 방법으로 데이터와 오브젝트를 분리했다.
트러블 슈팅 : TiemScale
세이브 로드 작업 테스트 중 로드 후 버튼들이 제대로 작동하지 않는 버그가 생겼다.
당연히 세이브 로드와 관련된 부분을 변경해서 클래스들의 생성, 작동순서 때문에 버그가
생겼다고 판단하고 코드들을 계속 수정해보았지만 아무런 효과가 없었다.
그러던 중에 세이브 로드를 할때 일시정지를 누르는 부분이 떠올랐고 작동 되는 버튼과
작동 되지 않는 버튼이 있다는 점이 연결되었다. 확인해 본 결과 로드 버튼을 누르면
TimeScale을 1f로 되돌리지 않게 되어 있었고 작동되는 버튼은 일반적인 버튼이고
작동되지않는 버튼의 기능들은 DOTween을 사용한 기능들이였다.
그렇게 오랜시간 디버깅을 하다가 TimeScale을 1f로 만들어 주는것으로 바로
버그를 해결할 수 있었다. TimeScale을 건드리는 부분은 간단하지만 디버깅으로 찾기
힘들다고 느꼈고 주의해서 사용해야할 필요성을 느꼈다.