Unity WebGL 애플리케이션 빌드 및 배포 가이드
이 문서는 Unity에서 WebGL 애플리케이션을 효율적으로 빌드하고 배포하기 위한 가이드를 제공합니다. 다음은 필수적인 팁 및 예시입니다.
배포 크기 및 코드 스트리핑
WebGL 애플리케이션 퍼블리시 시, 사용자가 충분한 다운로드 시간을 확보할 수 있도록 빌드 크기를 최적화하는 것이 중요합니다. 이 섹션에서는 파일 크기 최소화 및 코드 스트리핑에 대한 내용을 설명합니다.
빌드 파일 크기 축소
- 텍스처 압축: 텍스처 임포터에서 모든 압축된 텍스처를 Crunch 포맷으로 지정합니다.
- 개발 빌드를 피하기: 개발 빌드는 압축되지 않아서 파일 크기가 훨씬 큽니다.
- 예외 설정:
Edit > Project Settings > WebGL
에서 Publishing Settings를 펼쳐Enable Exceptions
을 None으로 설정합니다. - 엔진 코드 스트리핑:
Player settings > Other Settings
패널에서Strip Engine Code
를 활성화합니다.
코드 스트리핑
Unity는 사용되지 않는 코드를 자동으로 제거합니다. Other Settings
패널에서 Strip Engine Code
옵션을 활성화하면 사용되지 않는 Unity 서브시스템을 제거하여 빌드 크기를 줄입니다.
코드 스트리핑 문제 해결
스트리핑으로 인해 실제 필요한 코드가 제거되면 오류가 발생할 수 있습니다. 예를 들어, 아래와 같은 오류가 브라우저의 JavaScript 콘솔에 표시될 수 있습니다.
Could not produce class with ID XXX
이런 경우, 클래스 ID를 확인하고 해당 클래스의 참조를 스크립트에 추가하거나 link.xml
파일을 통해 코드를 포함하도록 강제해야 합니다.
link.xml 예시
<linker>
<assembly fullname="UnityEngine">
<type fullname="UnityEngine.Collider" preserve="all"/>
</assembly>
</linker>
빌드 출력 파일 이동
WebGL 템플릿의 index.html
파일에서 buildUrl
변수를 수정하여 빌드 폴더의 위치를 변경할 수 있습니다.
설정 항목 | 설명 |
---|---|
buildUrl | 빌드 폴더의 URL 설정 |
dataUrl | 애셋 데이터를 접속하는 URL 설정 |
wasmCodeUrl | WebAssembly 코드의 URL 설정 |
wasmMemoryUrl | WebAssembly 메모리의 URL 설정 |
wasmFrameworkUrl | WebAssembly 프레임워크 URL 설정 |
증분 빌드
IL2CPP로 생성된 C++ 코드는 변경된 부분만 다시 컴파일됩니다. Unity 프로젝트의 Library/il2cpp_cache
디렉토리에서 증분식 컴파일을 위한 오브젝트 파일을 확인할 수 있습니다. 클린 빌드를 원할 경우 해당 디렉토리를 삭제하면 됩니다.
추가적으로 고려할 사항
- CORS 설정: 파일을 CDN에서 호스팅할 경우 CORS가 활성화되어야 합니다.
- 최신 문서 참조: 더 많은 정보는 Unity 공식 문서에서 확인하세요.
이 가이드는 Unity WebGL 애플리케이션의 빌드와 배포를 위한 기본적인 이해를 돕기 위해 작성되었습니다. 추가적으로 실습과 경험을 통해 최적의 방법을 탐색해보길 권장합니다.