AssetBundle.LoadFromFile() // 에셋 번들을 동기로 로딩
AssetBundle.LoadFromFileAsnyc() // 에셋 번들을 비동기로 로딩
회사에서 에셋 번들 관련 버그를 수정했다. 에셋 번들을 사용하는 코드가 디바이스에 한정되어 있어 매번 빌드를 만들어서 결과를 확인해야 한다. 역시 예상대로 같은 에셋 번들을 비동기로 불러오는 동안 그것을 동기로 불러오는 함수를 호출하면 유니티 내부 에러가 발생한다. (Unity 2020.3.33f1) 비동기로 에셋 번들을 불러올 때, 시작부터 종료까지 각 로딩 상태를 로그로 남겼다. 물론 동기로 같은 에셋 번들을 불러오는 시점에도 로그를 남겼다. 크래쉬가 날 때, 에셋 번들 로딩 상태 정보를 추적해 보니, 비동기 로딩이 완료되기 전에 크래쉬가 발생하는 것을 확인할 수 있었다. 어제도 같은 가정하에 로그를 남겼지만 관련 에셋 번들이 어느 시점에 로딩하는지 자세히 로그를 남기지 않았다. 그저 비동기 로딩을 위해 로딩 요청 오브젝트를 큐에 존재하는지만 확인했다. 완료 시점에 대한 명확한 로그를 남기지 않았다.
자세히 로그를 추가하니 데이터 처리 시점이 훤히 보였다. 또 로그를 남기면서 코드를 더 잘 이해하게 됐다. 만약 이렇게 해도 버그를 수정 못했다면, 관련 에셋 번들 함수를 이용한 샘플 프로젝트를 만들어 테스트 할 계획이었다. 글을 쓰다 보니, 에셋 번들을 사용하는 코드를 유니터 에디터에서 돌아가게 했다면 에디터에서 재발생시킬 수 있고 또 로그가 아닌 디버깅 툴로 상태를 쉽게 추적하지 않았을까 싶다.