유니티 5.x 버전에서 SpritePacker를 사용했었는데 2017로 넘어오면서 SpritePacker를 사용할 수 없었다.
그래서 구글링을 좀 해봤더니 SpritePacker가 SpriteAtlas를 사용하게끔 바꼈다는 글을 보게 되었다.
사용법이 이해되지 않아 좀 헤매긴 했지만 여러 예제를 참조하며 프로젝트에 적용했다.
패킹이미지와 원본이미지가 둘 다 APK파일 안에 들어가는 이상한 점이 있긴하다.
그렇게 적용하고 프로토타입이 완성되어 프로파일링을 하게 되었는데 object count가 지속적으로 증가하는 현상이 발견되었다.
처음에는 코드적 오류인가 싶어서 이것저것 테스트를 해봤지만 object count가 늘어나지않아 또 삽질을 시작했다.
그러다 스프라이트 이미지를 바꿀때 object count가 미친듯이 늘어나는 것을 확인하게 되었다.
결론적으로 여러 예제에서 볼수있었던 SpriteAtlas.GetSprite(string) 이 함수를 호출해 sprite를 가져올때마다 object count가 증가하고 있었다.
아직도 이해가 안가는건 가져와서 sprite에 넣었다가 다른 sprite로 변경되면 참조값이 없어지면서 gc에 의해 사라진다던지 해야되는게 아닌가하는 생각이 들긴하지만 사용할 sprite를 전부 캐싱해서 사용하는 방법으로 해결을 보게 되었다.
댓글 없음:
댓글 쓰기