에셋 종류별 용량이 나뉘어 나온 빌드 리포트 화면
에셋 종류별 용량이 나뉘어 나온 빌드 리포트 화면

리포트를 열기 전에는 다 추측입니다

용량이 크면 텍스처를 의심하는 게 습관입니다. 우리 게임은 2D URP 브릭브레이커라 텍스처가 많지도 않은데 빌드가 예상보다 무거웠습니다. 빌드 리포트를 열어 종류별로 나눠 보니 오디오가 가장 컸습니다. 짧은 효과음을 전부 압축 없이 메모리에 올리도록 임포트해 둔 상태였습니다.

오디오 임포트에서 실제로 갈리는 값

  1. Load Type을 짧은 효과음은 Decompress On Load, 긴 배경음은 Streaming으로 나눕니다.
  2. Compression Format을 플랫폼별로 다시 봅니다. WebGL은 기본값이 그대로 남아 있기 쉽습니다.
  3. Force To Mono를 켜면 효과음 대부분은 차이가 들리지 않습니다.
  4. Preload Audio Data를 전부 켜 두면 첫 장면 로딩이 길어집니다.
// 임포트 설정은 코드로 감사하는 게 빠릅니다
var importer = (AudioImporter)AssetImporter.GetAtPath(path);
var settings = importer.GetOverrideSampleSettings("WebGL");
settings.loadType = AudioClipLoadType.DecompressOnLoad;
settings.compressionFormat = AudioCompressionFormat.Vorbis;
importer.SetOverrideSampleSettings("WebGL", settings);

압축은 절반이 서버 설정입니다

빌드에서 Brotli를 골라도 서버가 해당 Content-Encoding을 내려주지 않으면 브라우저가 압축본을 못 씁니다. 로컬에서 열어보고 크기가 안 줄었다고 판단하기 전에 응답 헤더를 봅니다.

리포트에서 가장 큰 항목이 바뀌었다면 첫 번째 잘라내기는 끝난 겁니다. 다음 후보는 Managed Stripping Level인데, 리플렉션으로만 접근하는 타입이 사라지는 부작용이 있어서 기기에서 한 번 돌려보고 올립니다.

$ curl -sI https://example.test/Build/game.wasm | grep -i content-encoding
content-encoding: br
검증 범위

공식 문서 대조

검증일

Unity 공식 문서와 본문의 코드·절차를 대조해 공개 준비 상태로 전환했습니다. 별도 Unity 프로젝트나 실기기에서 직접 재현한 결과는 아니며, 특정 버전·기기 문의가 들어오면 해당 환경에서 후속 확인합니다.

확인한 공식 문서WebGL 빌드 ↗