Soul 이라는 객체의 데이터를 저장하는 Json 파일 구조
Player.cs의 로드할 데이터 유무 케르하여 해당 데이터를 파싱하여 사용한다.
SoulInventory.cs로 Player의 멤버변수의 PlayerSoul 멤버변수로 가지고있는 Stat메서드이다.

해당 Start메서드에서 게임매니저에 있는 플레이어의 SoulInventory에 자기자신을 참조시킨뒤 게임의 불러오기 데이터 유무를 체크 하여 상황에 따라 Soul을 초기화 한다. 


 

ItemStatusController.cs의 아이템을 강화하는 메서드 영역 , 현재 List에서 Find 메서드를 사용하여 객체를 탐색하고있다.

List의 탐색의 시간복잡도는 (n)이고 Dictnary의 탐색 시간 복잡도는 1이다. 그러기때문에 List -> Dict으로 리팩토링을 진행해야된다. 그 와중에 해당 데이터는 직렬화 과정을 겪고 있고 Dictnary는 직렬화에 사용하지 못하기에 잠시 트러블 슈팅을 겪었고 List로 대체되었는데 , 튜터님께 물어본 결과 List -> Dict로 전환하는 처리비용이 들지만 결국 탐색을 자주하면 할 수록 최적화에는 Dict에 더 도움이 된다고 하셨기에 Dictnary로 리팩토링을 진행 하여야 한다. 

 

즉, 직렬화/역직렬화(저장/불러오기) 시에만 List <> Dictnary로 전환 할 수 있게 리팩토링 하면된다. 

 


 

 

Player객체가 움직일때 발소리가 나는 AudioSource 컴포넌트가 필요하였기에 자식 오브젝트로 하나 생성하여 해당 오브젝트는 계속 발소리를 내게 구현하였고 나머지는 각 상황에서 필요할때마다 호출하는식으로 구현하였다. 

+ Recent posts