Version: 2018.2
WebGL
WebGL 개발 시작

WebGL 플레이어 설정(WebGL Player Settings)

이 페이지에서는 WebGL 관련 Player Settings 에 대해 자세하게 설명합니다. 일반 플레이어 설정에 대한 설명은 여기서 확인할 수 있습니다.

기타 설정

프로퍼티: 기능:
Rendering
Rendering Path 게임에서 활성화된 렌더링 경로입니다.
Auto Graphics API 직접 사용할 그래픽스 API를 선택하고 싶다면 체크를 해제해야 합니다. 체크가 되면 Unity는 미지원 브라우저용으로 WebGL1.0과 WebGL2.0을 폴백으로 포함합니다. 체크가 해제되면 직접 그래픽스 API를 선택하고 순서를 바꿀 수 있습니다.
Static Batching 체크하면 정적 배칭을 사용합니다.
Dynamic Batching 체크하면 동적 배칭을 사용합니다.
Configuration
Scripting Runtime Version 프로젝트에 사용할 .NET 런타임을 선택합니다. 자세한 내용은 Microsoft의 .NET 문서를 참조하십시오.
     .NET 3.5 Equivalent .NET 3.5 API를 구현하는 .NET 런타임입니다. 이 옵션이 기본 스크립팅 런타임입니다.
     .NET 4.x Equivalent .NET 4 API를 구현하는 .NET 런타임입니다. 이 API는 .NET 3.5보다 최신 버전이기 때문에 더 많은 API에 액세스할 수 있고, 더 많은 외부 라이브러리와 호환되며, C# 6를 지원합니다.
Scripting Backend WebGL에는 스크립팅 백엔드가 단 하나밖에 없기 때문에 스크립팅 백엔드는 회색 처리됩니다.
Disable HW Statistics 체크를 해제하면 애플리케이션이 하드웨어 정보를 Unity에 전송합니다. 자세한 내용은 hwstats 페이지를 참조하십시오.
Scripting Define Symbols 커스텀 컴파일 플래그입니다. 자세한 내용은 플랫폼별 컴파일 페이지를 참조하십시오.
Allow ‘unsafe’ Code 사전 정의된 어셈블리(예: Assembly-CSharp.dll)에서 ‘안전하지 않은’ C# 코드 컴파일에 대한 지원을 활성화합니다. 어셈블리 정의 파일(.asmdef)의 경우 .asmdef 파일 중 하나를 클릭한 후 표시되는 인스펙터 창에서 이 옵션을 활성화하십시오.
Optimization
Api Compatibility Level 사용하는 액티브 .NET API 프로파일을 명시합니다. 아래를 참조하십시오.
        .Net 2.0 .NET 2.0 라이브러리입니다. .NET 호환성 최대, 파일 크기 최대
        .Net 2.0 Subset 전체 .NET 호환성의 부분 집합, 파일 크기 작음
Prebake Collision Meshes 빌드 중 충돌 메시 베이킹을 사용합니다.
Preload Shaders 셰이더 사전 로딩을 사용합니다.
Preload Assets 에셋 사전 로딩을 사용합니다. 사전 로드할 에셋의 크기를 지정해야 합니다.
Strip Engine Code WebGL용 코드 스트리핑을 사용합니다.
Vertex Compression
Optimize Mesh Data 메시에 적용된 머티리얼이 사용하지 않는 데이터(탄젠트, 노멀, 컬러, UV)를 메시에서 제거합니다.

API 호환성 레벨

모든 타겟에 대해 모노 API 호환성 레벨을 선택할 수 있습니다. 때로는 사용하려는 .NET 호환성 레벨의 범위를 벗어난 레벨이 서드파티 .net dll에 사용됩니다. 이런 경우에 무슨 일이 일어나고 있고 문제를 어떻게 해결해야 할지 알아보려면 Windows에서 “Reflector”를 받으십시오.

  1. 해당 API 호환성 레벨에 해당하는 .NET 어셈블리를 Reflector로 드래그합니다. 해당 어셈블리는 Frameworks/Mono/lib/mono/YOURSUBSET/에서 찾을 수 있습니다.
  2. 서드파티 어셈블리도 드래그합니다.
  3. 서드파티 어셈블리를 오른쪽 마우스 버튼으로 클릭하고 Analyze 를 선택합니다.
  4. 분석 보고서에서 Depends on 섹션을 살펴봅니다. 서드파티 어셈블리가 의존하고 있지만 선택한 .NET 호환성 레벨에서 사용할 수 없는 항목은 빨간색으로 강조 표시됩니다.

퍼블리싱 설정

프로퍼티: 기능:
메모리 크기(Memory Size) WebGL 런타임이 사용할 수 있는 메모리를 메가바이트 단위로 설정합니다. 이에 대한 값을 주의해서 선택해야 합니다. 값이 너무 낮으면 사용 가능한 메모리에 맞지 않는 콘텐츠와 씬을 로드해서 메모리 부족 오류가 발생합니다. 그러나 메모리가 너무 많으면 브라우저/플랫폼 결합이 적절한 메모리를 제공할 수 없어서 플레이어 로드에 실패할 수 있습니다. 자세한 내용은 여기를 참조하십시오.
Enable Exceptions 예외 지원이 활성화되어 런타임에 (일반적으로 오류로 간주되는) 예기치 못한 코드 동작을 처리하는 방법을 지정할 수 있습니다. None, Explicitly Thrown Exceptions Only, Full Without Stacktrace 및 Full With Stacktrace의 네 가지 옵션이 있습니다. 자세한 내용은 WebGL 프로젝트 빌드 및 실행을 참조하십시오.
Compression Format 릴리스 빌드 파일 압축 포맷입니다. gzip, brotli 또는 none을 선택할 수 있습니다. 이 옵션은 개발 빌드에 적용되지 않습니다.
Name Files As Hashes 압축되지 않은 파일 콘텐츠의 MD5 해시를 빌드의 각 파일 이름으로 사용합니다.
Data caching 예외 지원 사용은 자동으로 콘텐츠 에셋 데이터를 사용자 컴퓨터에 캐시해서 그 다음 실행시 콘텐츠가 바뀌지 않는 한 다시 다운로드 받지 않아도 되도록 합니다. 캐시는 브라우저가 제공하는 IndexedDB API를 사용해서 구현됩니다. 어떤 브라우저는 특정 크기 데이터에 대한 캐시 허가를 물어보는 식으로 이에 대한 제한을 둘 수 있습니다.
Debug Symbols 오류가 발생할 경우 디버그 심볼을 유지하고 스택 추적 디맹글링을 수행합니다. 릴리스 빌드의 경우 모든 디버그 정보가 별도 파일에 저장되고 오류가 발생하면 이 파일이 서버에서 온디멘드 방식으로 다운로드됩니다. 개발 빌드에는 항상 디맹글링 지원이 메인 모듈에 포함되어 있으므로 이 옵션이 적용되지 않습니다.
Linker Target 생성할 빌드 타입을 지정합니다. asm.js 는 여러 브라우저에서 널리 지원되고, WebAssembly 는 새롭고 효율적인 웹용 포맷입니다. 둘 다(Both) 를 선택하면 WebAssembly 및 asm.js 포맷을 생성합니다. 그러면 브라우저에서 지원되는 경우 런타임 시점에서 WebAssembly가 사용됩니다. 그러지 않으면 asm.js 포맷으로 폴백합니다.

WebGL 퍼블리싱 설정에 대한 자세한 정보는 WebGL 빌드 및 실행 페이지에서 찾아볼 수 있습니다.


  • 2018–03–20 편집 리뷰 없이 페이지 수정됨

  • Unity 2017.3에서 퍼블리싱 설정 업데이트됨 NewIn20173

  • Unity 2018.1에서 ‘안전하지 않은’ 코드 허용 체크박스 추가됨

  • 2018.1에서 .NET 4.x 런타임 추가됨

WebGL
WebGL 개발 시작