Version: 2023.1
언어: 한국어
WebGL 애플리케이션 빌드 및 배포
에셋 번들의 로드 시간 감소

WebGL 애플리케이션 빌드

WebGL용 빌드를 생성하려면 Unity의 메인 메뉴에서 File > Build Settings로 이동합니다. 플랫폼 리스트에서 WebGL을 선택한 후 Switch Platform을 클릭합니다.

빌드 설정을 완료하고 나면 다음 두 옵션 중에서 하나를 선택합니다.

  • Build:애플리케이션을 플레이어에 빌드합니다.
  • Build and Run:애플리케이션을 플레이어에서 빌드하고 타겟 플랫폼에서 해당 플레이어를 엽니다.
빌드 설정 창
빌드 설정 창

WebGL용 Unity 빌드 시스템은 다음 설정을 지원합니다.

설정 기능
Texture Compression 빌드에 사용할 텍스처 압축 포맷입니다.자세한 내용은 WebGL 텍스처 압축을 참조하십시오.가능한 옵션은 다음과 같습니다.
Use Player Settings 기본값으로 선택되는 옵션입니다.Player settings 창에서 설정한 텍스처 압축 포맷을 사용합니다.
ETC2 모바일 디바이스에서 널리 지원되는 ETC2 포맷을 사용합니다.
ASTC 모바일 디바이스에서 널리 지원되는 ASTC 포맷을 사용합니다.
DXT 데스크톱 기기에서 널리 지원되는 DXT 포맷을 사용합니다.
Development Build 빌드에 스크립팅 디버그 심볼과 프로파일러를 포함하려면 이 설정을 활성화합니다.이 옵션을 활성화하면 Unity는 DEVELOPMENT_BUILD 스크립팅 정의를 설정합니다.개발 빌드는 콘텐츠를 축소하지 않고 배포하기에 용량이 크므로 애플리케이션을 테스트하려는 경우에만 이 설정을 사용하십시오.
Code Optimization WebGL 코드를 컴파일하는 데 사용할 최적화 모드를 선택합니다.
Shorter Build Time 이 설정이 기본값입니다. 빌드 시간이 가장 적게 소요되는 WebGL 코드를 생성하려면 이 옵션을 선택합니다.
Runtime Speed 빌드 시간이 더 오래 걸리는 대신, 런타임 성능에 최적화된 WebGL 코드를 생성하려면 이 옵션을 선택합니다.
Runtime Speed with LTO Runtime Speed와 동일하지만 LTO(링크 시간 최적화) 단계가 추가됩니다(전체 프로그램 최적화라고도 함). 최종 사용자에게 배포할 마스터 빌드를 컴파일할 때 LTO를 활성화합니다.
Disk Size 빌드 시간이 더 오래 걸리는 대신 빌드 크기를 최소화하는 최적화를 우선시하려면 이 옵션을 선택합니다. 로드 가능한 WebAssembly 파일 크기에 제한이 있을 수 있는 모바일 웹 브라우저를 타게팅할 때 이 옵션을 선택하는 것이 좋습니다. 일반적으로 디스크 크기가 작을수록 페이지 시작 시간이 짧아집니다.
Disk Size with LTO Disk Size와 동일하지만 추가 LTO(링크 시간 최적화) 단계(전체 프로그램 최적화라고도 함)를 활성화합니다. 최종 사용자에게 배포할 마스터 빌드를 컴파일할 때 이 옵션을 선택합니다.
Autoconnect Profiler Typically, when enabled, this setting allows you to automatically connect the Unity Profiler to your build. However for WebGL, as you can’t connect the Profiler to a running build, use this option to connect the content to the Unity Editor instead. This is because the Profiler connection is handled using WebSockets on WebGL, but a web browser only allows outgoing connections from the content. For this setting to be available, you must enable the Development Build option.
Deep Profiling 프로파일러에서 Deep Profiling을 활성화하려면 이 설정을 활성화합니다.이 옵션을 사용하면 프로파일러 기기가 애플리케이션에서 함수를 호출할 때마다 더 자세한 프로파일링 데이터를 반환합니다.Deep Profiling Support를 활성화하면 스크립트 실행이 느려질 수 있습니다.이 옵션은 Development Build 옵션을 활성화한 경우에만 사용할 수 있습니다.
Build 애플리케이션을 빌드하려면 이 옵션을 사용합니다.
Build And Run WebGL 플레이어를 로컬로 보려면 이 옵션을 사용합니다.Unity는 로컬 웹 서버를 사용하여 빌드를 호스팅하고 로컬 호스트 URL에서 빌드를 엽니다.또는 리스폰스 헤더가 올바르게 설정된 커스텀 로컬 웹 서버를 사용할 수도 있습니다.자세한 내용은 압축 빌드 및 서버 설정을 참조하십시오.

Asset Import Overrides 설정을 변경하려면 빌드 설정을 참조하십시오.

빌드 폴더

Build 폴더에는 다음 파일이 있으며, 여기서 [ExampleBuild]는 타겟 빌드 폴더의 이름을 나타냅니다.

파일 이름 내용물
[ExampleBuild].loader.js 웹 페이지에서 Unity 콘텐츠를 로드하는 데 필요한 JavaScript 코드입니다.
[ExampleBuild].framework.js JavaScript 런타임 및 플러그인.
[ExampleBuild].wasm WebAssembly 바이너리.
[ExampleBuild].mem 플레이어용 힙 메모리를 초기화하기 위한 바이너리 이미지입니다.Unity는 멀티 스레드 WebAssembly 빌드에만 이 파일을 생성합니다.
[ExampleBuild].data 에셋 데이터 및 씬.
[ExampleBuild].symbols.json 오류 스택 추적을 디맹글하는 데 필요한 디버그 심볼 이름. 이 파일은 Debug Symbols 옵션(File > Build Settings > Player Settings)을 활성화한 경우에만 릴리스 빌드에 대해 생성됩니다.
[ExampleBuild].jpg 빌드가 로드되는 동안 표시되는 배경 이미지입니다.이 파일은 Player Settings(File > Build Settings > Player Settings > Splash Image)에서 Background Image를 사용할 수 있는 경우에만 생성됩니다.자세한 내용은 스플래시 화면을 참조하십시오.

빌드에 대해 Compression Method를 활성화하면 Unity는 압축 방식에 해당하는 확장자를 식별하고 이 확장자를 Build 하위 폴더 내 파일 이름에 추가합니다.Decompression Fallback을 활성화하면 Unity는 .unityweb 확장자를 빌드 파일 이름에 추가합니다.그렇지 않으면 Unity는 Gzip 압축 방식에 .gz 확장자를 추가하거나 Brotli 압축 방식에 .br 확장자를 추가합니다. 자세한 내용은 압축 빌드 및 서버 설정을 참조하십시오.

Player Settings에서 Name Files As Hashes를 활성화하면 Unity는 기본 파일 이름 대신 파일 콘텐츠의 해시를 사용합니다.이는 빌드 폴더에 있는 각 파일에 적용됩니다.이 옵션을 사용하면 업데이트된 버전의 게임 빌드를 서버의 동일한 폴더에 업로드하며, 빌드 반복 간에 변경된 파일만 업로드할 수 있습니다.

참고: 일부 브라우저에서는 파일 시스템에서 플레이어를 직접 열 수 없습니다. 이는 로컬 파일 URL에 적용된 보안 제한 사항 때문입니다.

예외 활성화

런타임 시 예상치 못한 코드 동작(오류라고도 함)을 처리하는 방법을 지정하려면 예외 활성화를 사용합니다.예외 활성화에 액세스하려면 WebGL Player Settings의 Publishing Settings 섹션으로 이동합니다.

여기에는 다음 옵션이 있습니다.

  • None:예외 지원이 필요하지 않은 경우 이 옵션을 선택합니다.이 옵션을 선택하면 성능이 극대화되고 빌드가 최소화됩니다.이 옵션을 사용하면 폐기된 예외로 인해 해당 설정에 오류가 있는 경우 콘텐츠가 중지됩니다.
  • Explicitly Thrown Exceptions Only (default):스크립트의 throw 문에서 명시적으로 지정된 예외를 캡처하고 finally 블록이 호출되도록 하려면 이 옵션을 선택합니다.이 옵션을 선택하면 스크립트에서 생성된 JavaScript 코드가 더 길어지고 더 느려지지만, 스크립트가 프로젝트의 중요한 병목 지점인 경우에만 문제가 될 수 있습니다.
  • Full Without Stacktrace:스크립트의 throw 문에서 명시적으로 지정된 예외(Explicitly Thrown Exceptions Only 옵션과 동일)를 캡처하려면 이 옵션을 선택합니다.
    • Null 레퍼런스
    • 범위 이탈 배열 액세스
  • Full With Stacktrace:이 옵션은 위의 옵션과 유사하지만 스택 추적도 캡처합니다.Unity는 이런 예외에 대한 확인을 코드에 포함시켜서 예외를 생성하므로, 이 옵션을 선택하면 성능이 저하되고 브라우저 메모리 사용이 증가합니다.디버깅에만 이 옵션을 사용하고 항상 64비트 브라우저에서 테스트하십시오.
WebGL 애플리케이션 빌드 및 배포
에셋 번들의 로드 시간 감소