TIL : 2025-01-02(목) :: 최종프로젝트 개발 일지(25) - 게임 저장/불러오기 (Soul 데이터 저장/불러오기 구현) & 사운드 적용
해당 Start메서드에서 게임매니저에 있는 플레이어의 SoulInventory에 자기자신을 참조시킨뒤 게임의 불러오기 데이터 유무를 체크 하여 상황에 따라 Soul을 초기화 한다.
List의 탐색의 시간복잡도는 (n)이고 Dictnary의 탐색 시간 복잡도는 1이다. 그러기때문에 List -> Dict으로 리팩토링을 진행해야된다. 그 와중에 해당 데이터는 직렬화 과정을 겪고 있고 Dictnary는 직렬화에 사용하지 못하기에 잠시 트러블 슈팅을 겪었고 List로 대체되었는데 , 튜터님께 물어본 결과 List -> Dict로 전환하는 처리비용이 들지만 결국 탐색을 자주하면 할 수록 최적화에는 Dict에 더 도움이 된다고 하셨기에 Dictnary로 리팩토링을 진행 하여야 한다.
즉, 직렬화/역직렬화(저장/불러오기) 시에만 List <> Dictnary로 전환 할 수 있게 리팩토링 하면된다.
Player객체가 움직일때 발소리가 나는 AudioSource 컴포넌트가 필요하였기에 자식 오브젝트로 하나 생성하여 해당 오브젝트는 계속 발소리를 내게 구현하였고 나머지는 각 상황에서 필요할때마다 호출하는식으로 구현하였다.