다음 권장 Player 설정을 사용하여 Unity 웹 플랫폼에 맞게 빌드를 최적화합니다.
이러한 설정은 Edit > Project settings > Player에 있습니다. 각 설정에 대한 자세한 내용은 Player settings의 세부 정보를 참조하십시오.
| 설정 | 권장 설정 | 설명 |
|---|---|---|
| API 호환성 레벨 | .NET Standard 2.1 | 더 작은 빌드를 생성합니다. |
| IL2CPP Code Generation | Faster (smaller) builds | 빌드 크기와 반복 작업에 최적화된 코드를 생성합니다. |
| Managed Stripping Level | 높음 | Unity는 고수준으로 관리되는 스트리핑을 수행하여 더 작은 빌드를 생성합니다. |
Publishing Settings 섹션에서 다음 권장 설정을 구성합니다.
| 설정 | 권장 설정 | 설명 |
|---|---|---|
| Compression Format | Brotli | Brotli에서 압축한 파일은 더 작습니다. |
| 데이터 캐싱 | 활성화 | 콘텐츠가 변경되지 않는 한 후속 실행 시 캐시된 데이터를 다시 다운로드할 필요가 없으므로 더 빠르게 실행됩니다. |
| Debug Symbols | Off | 디버그 심볼을 사용하면 애플리케이션 속도가 느려질 수 있습니다. |
| 예외 활성화 | None | 대신 오버헤드가 없는 예외를 사용하려면 Target WebAssembly 2023을 활성화합니다. |
| Target WebAssembly 2023 | Enable | Web Assembly 2023 기능 세트에는 프로젝트를 최적화하는 데 도움이 되는 기능이 포함되어 있습니다. |
| Maximum Memory Size (MB) | 필요한 메모리의 양을 MB 단위로 입력합니다. | Unity 웹은 빌드에 대해 최대 4096MB의 메모리를 지원합니다. |
프로젝트에서 사용할 .NET API를 선택하려면 API Compatibility Level 설정을 사용합니다. 이 설정은 더 작은 빌드를 생성하고 크로스 플랫폼을 지원하므로 권장 설정은 .Net Standard 2.1입니다. 하지만 플랫폼이 .Net Standard 2.1을 완전히 지원하는지 확인해야 합니다. 다른 옵션은 웹 플레이어 설정을 참조하십시오.
대신 스크립트를 통해 API Compatibility Level을 변경하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.SetApiCompatibilityLevel(namedBuildTarget, ApiCompatibilityLevel.NET_2_0);
IL2CPP Code generation 설정을 사용하여 Unity가__ IL2CPP__Unity에서 개발한 스크립팅 백엔드로, 여러 플랫폼용 프로젝트를 빌드할 때 Mono 대신 사용할 수 있습니다. 자세한 정보
See in Glossary 코드 생성을 관리하는 방법을 설정합니다(프로젝트에서 IL2CPP 스크립팅 백엔드를 사용하는 경우).
Faster (smaller) 빌드 옵션은 더 작은 빌드를 생성하고 코드를 적게 생성하여 빌드 시간을 단축하므로 권장되는 옵션입니다. 웹 애플리케이션에서는 빌드 시간을 단축하는 것이 중요합니다. 하지만 이 설정으로 인해 런타임 성능이 저하될 수 있습니다.
자세한 내용은 IL2CPP 개요를 참조하십시오.
대신 스크립트를 통해 이 설정을 활성화하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.SetIl2CppCodeGeneration(namedBuildTarget,
Il2CppCodeGeneration.OptimizeSize);
Managed stripping level을 사용하여 Unity linker 프로세스가 프로젝트에서 사용하는 관리되는 DLL에서 사용되지 않는 코드를 스트리핑하는 정도를 설정합니다. 코드를 스트리핑하면 실행 파일을 훨씬 작게 만들 수 있으므로 권장 설정은 High입니다. 이는 웹 애플리케이션에서 중요합니다. 그러나 다음과 같은 부작용도 있을 수 있습니다.
일부 메서드의 관리되는 코드 디버깅이 작동하지 않을 수 있습니다.
커스텀 link.xml 파일을 유지해야 할 수 있습니다.
일부 반사 코드 경로가 동일하게 동작하지 않을 수 있습니다.
자세한 내용은 관리되는 코드 스트리핑을 참조하십시오.
대신 스크립트를 통해 이 설정을 변경하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.SetManagedStrippingLevel(namedBuildTarget,
ManagedStrippingLevel.High);
릴리스 빌드 파일에 사용할 압축 포맷을 선택합니다. Brotli는 최적의 압축비를 제공하고 Brotli 압축 파일은 gzip보다 작기 때문에 이는 권장되는 설정입니다. 작은 파일은 웹 애플리케이션에 가장 적합합니다. 하지만 Chrome과 Firefox는 사용자가 HTTPS를 통해 웹사이트에 액세스하는 경우에만 Brotli를 지원합니다. 또한 대부분의 최신 서버는 Brotli를 지원하지만 일부 서버는 Brotli를 지원하지 않습니다. 서버가 Brotli를 지원하는지 확인하십시오.
압축 포맷에 대한 자세한 내용은 웹 애플리케이션 배포를 참조하십시오.
대신 스크립트를 통해 이 설정을 활성화하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Brotli;
Unity가 사용자의 컴퓨터에 콘텐츠 에셋 데이터를 캐싱하도록 Data caching을 활성화합니다. 데이터 캐싱은 애플리케이션 실행 속도를 높일 수 있습니다. 자세한 내용은 웹 캐시 동작을 참조하십시오.
대신 스크립트를 통해 이 설정을 활성화하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.WebGL.dataCaching = true;
Debug symbols 설정은 디버그 심볼을 보존하고 오류가 발생할 때 스택 추적의 원래 함수 이름을 표시하므로 오류 원인을 쉽게 식별할 수 있습니다. 최종 릴리스 빌드에서는 Debug symbols를 비활성화하는 것이 좋습니다. 빌드의 크기가 불필요하게 커지고 애플리케이션 속도가 느려질 수 있기 때문입니다. 개발 및 테스트 중에 이 설정을 활성화하면 오류 원인을 쉽게 식별할 수 있습니다.
대신 스크립트를 통해 이 설정을 비활성화하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.WebGL.debugSymbolMode = WebGLDebugSymbolMode.Off;
Enable exceptions 설정을 통해 런타임 시 오류를 처리하는 방법을 선택할 수 있습니다. 권장되는 베스트 프랙티스는 최종 릴리스 빌드에서 None 옵션을 선택하는 것입니다. 이 설정에서 최상의 성능과 최소 빌드를 제공하기 때문입니다.
하지만 이 옵션을 사용하면 발생하는 예외로 인해 콘텐츠가 오류로 중지되므로 개발 및 테스트 중에 예외를 활성화하는 것이 좋습니다. 자세한 내용은 웹 플레이어 설정을 참조하십시오.
대신 스크립트를 통해 예외를 비활성화하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.WebGL.exceptionSupport = WebGLExceptionSupport.None;
WebAssembly 2023는 성능을 향상하고 코드 크기를 줄일 수 있는 다양한 WebAssembly 언어 기능입니다. 따라서 이 설정을 활성화하는 것이 좋습니다.
대신 스크립트를 통해 이 설정을 활성화하려면 다음 코드를 스크립트 중 하나에 추가합니다.
PlayerSettings.WebGL.wasm2023 = true;
// PlayerSettings.WebGL.webAssemblyTable = true;
// PlayerSettings.WebGL.webAssemblyBigInt = true;
WebAssembly 2023 없이 WebAssembly.Table 또는 BigInt 기능을 활성화하려면 코드의 첫 번째 줄을 제거하고 주석 줄을 제거합니다.
Unity는 빌드에 대해 최대 4096MB의 메모리를 지원합니다. 대부분의 애플리케이션에서는 2048MB의 메모리로 충분합니다. 하지만 더 복잡한 실시간 3D 경험의 경우, 특히 데스크톱 브라우저의 경우 더 많은 메모리를 사용하는 것이 좋습니다. 더 많은 메모리를 사용하면 더 풍부하고 큰 씬을 더 동적으로 로드할 수 있습니다.
그러나 버전 119 이전의 Firefox 및 Chrome 브라우저에서는 2048MB를 초과하는 빌드에 대한 버그가 알려져 있습니다.
대신 스크립트를 통해 최대 메모리를 변경하려면 다음 코드를 스크립트에 추가하고 숫자를 원하는 메모리 크기로 변경합니다.
PlayerSettings.WebGL.maximumMemorySize = 4096;