Unity는 다양한 플랫폼과 다양한 설정으로 애플리케이션을 빌드할 수 있습니다. 이 문서에서는 씬, 타겟 플랫폼, 빌드를 위한 설정 방법을 다룹니다.
플랫폼과 설정을 선택하고 빌드 프로세스를 시작하려면 Build Settings 창을 사용합니다. Build Settings 창에 액세스하려면 Unity 메인 메뉴에서 File > Build Settings로 이동하십시오.
Unity는 다음과 같은 두 가지 빌드 타입을 생성합니다.
개발 과정 중 더 빠르게 반복하기 위해 Unity는 아티팩트가 이전 빌드 이후 변경된 경우에만 다시 빌드하는 증분 빌드 파이프라인을 사용합니다. 아티팩트에는 에셋 직렬화, 코드 컴파일, 데이터 압축 및 서명과 같은 빌드 단계의 출력이 포함됩니다. 이는 릴리스 빌드와 개발 빌드 모두에 기본값입니다.
증분 빌드 파이프라인은 Scripts Only Build 기능을 자동화합니다. 따라서 Scripts Only Build 옵션은 증분 빌드를 사용하지 않는 플랫폼을 위한 빌드 설정 창에서만 사용할 수 있습니다.
참고: 증분 빌드 파이프라인은 현재 스탠드얼론(Windows, Mac, Linux) Android, WebGL 플랫폼에서만 사용할 수 있습니다.
필요한 경우 클린(비증분) 빌드를 강제로 실행할 수 있습니다. 예를 들어 다음과 같은 상황에서 클린 빌드가 필요할 수 있습니다.
빌드가 사용자 콜백이 에셋에 어떤 영향을 미치는지 알 수 없어서 콜백이 처리한 에셋을 언제 다시 빌드해야 할지 결정할 수 없습니다. 개발 빌드에서 콜백이나 입력 데이터를 변경하여 Unity가 영향을 미치는 에셋을 다시 빌드하게 하려면 클린 빌드를 강제로 실행해야 합니다.
예를 들어 IPreprocessShaders.OnProcessShader와 PostProcessSceneAttribute, IPreprocessComputeShaders.OnProcessComputeShader 콜백을 사용할 때 이러한 콜백이 이전 빌드 이후 변경되었다는 결과를 예상하고, 그 변경 사항을 반영한 빌드가 필요한 경우 클린 빌드를 강제 실행해야 할 수도 있습니다.
다음의 경우에는 클린 빌드를 강제 실행할 필요가 없습니다.
증분 빌드 후에 변경 사항이 없고 증분 빌드 파이프라인에 문제가 있다고 의심되는 경우 클린 빌드를 강제 실행합니다.
애플리케이션을 빌드할 때 Unity는 Scenes In Build 창에서 선택된 모든 씬을 빌드합니다. Unity는 리스트에 표시되는 순서대로 씬을 빌드합니다.
다음과 같이 리스트에 씬을 추가, 제외, 제거 및 순서 변경을 수행할 수 있습니다.
각 빌드는 반드시 타겟 플랫폼을 포함해야 합니다. 플랫폼 창에는 빌드할 수 있는 모든 플랫폼이 나열됩니다.
컴퓨터에 설치된 각 Unity 버전에는 자체 플랫폼 리스트가 포함되어 있습니다.
필요한 플랫폼이 리스트에 없는 경우 다음 중 한 가지를 수행합니다.
Build Settings 창에서 다음 단계를 따르십시오.
Unity Hub > Installs에서:
빌드의 타겟 플랫폼을 변경하려면:
플랫폼을 선택하면 Unity는 빌드에 대해 조정할 수 있는 옵션 리스트를 표시합니다. 일부 설정은 모든 플랫폼에 적용되며 일부는 플랫폼에 따라 다릅니다.
다음 설정은 모든 플랫폼에 적용됩니다.
설정 | 기능: | |
---|---|---|
Development Build | 빌드에 디버그 심볼과 프로파일러 스크립팅을 포함합니다. 애플리케이션을 테스트하려면 이 설정을 사용해야 합니다. 이 옵션을 선택하면 Unity는 DEVELOPMENT_BUILD 스크립팅 정의를 설정합니다. 그러면 빌드에 DEVELOPMENT_BUILD를 조건으로 설정하는 프리 프로세서 지시문이 포함됩니다(플랫폼 의존 컴파일을 참조하십시오.). |
|
Autoconnect Profiler | Unity 프로파일러를 빌드에 자동으로 연결합니다. 이 옵션은 Development Build를 선택한 경우에만 사용 가능합니다. |
|
Deep Profiling Support | 프로파일러에서 세부 프로파일링을 활성화합니다. 이렇게 하면 프로파일러 도구를 애플리케이션에서 모든 함수 호출로 만들어 더 자세한 프로파일링 데이터를 반환합니다. 이 옵션은 스크립트 실행 속도를 느리게 할 수도 있습니다. 이 옵션은 Development Build를 선택한 경우에만 사용할 수 있습니다. |
|
Script Debugging | 스크립트 코드를 디버깅할 수 있습니다. 이 옵션은 개발 빌드를 선택한 경우에만 사용할 수 있습니다. 이 옵션은 WebGL에는 사용할 수 없습니다. |
|
Wait for Managed Debugger | 스크립트 코드를 실행하기 전에 플레이어가 디버거가 연결될 때까지 기다리게 합니다. 이 옵션은 Script Debugging을 선택한 경우에만 사용할 수 있습니다. |
|
IL2CPP Code Generation | Unity가 IL2CPP 코드 생성을 관리하는 방법을 정의합니다. 이 옵션은 Mono가 아닌 스크립팅 백엔드용으로 IL2CPP를 사용하는 경우에만 사용할 수 있습니다. 스크립팅 백엔드를 변경하려면 Player Settings > Configuration > Scripting Backend로 이동하여 Mono에서 IL2CPP로 변경합니다. |
|
Faster runtime | 런타임 성능을 위해 최적화된 코드를 생성합니다. 이것은 기본값이며 Unity 이전 버전의 동작입니다. | |
Faster (smaller) builds | 빌드 크기와 반복을 위해 최적화된 코드를 생성합니다. 코드를 더 적게 생성하며 더 작은 빌드를 만들지만 런타임 성능 특히 일반 코드에 영향을 미칠 수도 있습니다. 변경 사항을 반복할 때와 같이 더 빠른 빌드 시간이 중요한 경우 이 옵션을 사용할 수도 있습니다. | |
Compression Method | 플레이어를 빌드할 때 프로젝트에 데이터를 압축합니다. 여기에는 에셋, 씬, 플레이어 설정, GI 데이터가 포함됩니다. 이 옵션은 Lumin과 WebGL 플랫폼에서는 사용할 수 없습니다. |
|
Default | PC, Mac, Linux 스탠드얼론, iOS에는 기본 압축 방식이 없습니다. Android 기본 압축 방식은 ZIP이며 LZ4HC보다 압축률이 조금 낫습니다. 하지만 ZIP 데이터는 압축 풀기가 조금 느립니다. |
|
LZ4 | 개발용 빌드에 적합한 고속 압축 포맷입니다. 자세한 내용은 BuildOptions.CompressWithLz4를 참조하십시오. | |
LZ4HC | 높은 압축률을 자랑하는 LZ4 변형 포맷입니다. LZ4HC는 빌드 속도가 비교적 느리지만 릴리스 빌드에서 더 뛰어난 결과를 제공합니다. 자세한 내용은 BuildOptions.CompressWithLz4HC를 참조하십시오. |
임포트와 플랫폼 전환 시간을 단축하려면 로컬에서 모든 텍스처 임포트 설정을 오버라이드할 수 있습니다. 일반적으로 임포트 오버라이드와 최종 빌드를 제공하지는 않지만 개발 중에는 특히 에셋(여기의 경우 텍스처)이 가능한 한 좋게 보이는 것을 고려하지 않는 경우 반복 시간을 단축하는 데 유용할 수 있습니다.
초기 프로젝트 임포트에 대한 에셋 임포트 오버라이드를 설정하려면 Unity 에디터 커맨드 라인 인자 -overrideMaxTextureSize
와 -overrideTextureCompression
을 사용합니다.
두 오버라이드 옵션에 대한 기본값은 No Override입니다.
설정 | 기능: | |
---|---|---|
Max Texture Size | 임포트한 텍스처 최대 크기를 오버라이드합니다. Unity는 이 값 또는 텍스처 임포트 설정에 지정된 최대 크기 값 중 더 낮은 값의 텍스처를 임포트합니다. 텍스처를 임포트하는 데 걸리는 시간은 포함된 픽셀 수에 대략 비례하므로 허용되는 최대 텍스처 크기가 더 낮을 수록 임포트 시간을 단축할 수 있습니다. 하지만 결과 텍스처는 해상도가 더 낮기 때문에 이 설정은 개발 중에만 사용합니다. |
|
Texture Compression |
텍스처 임포트 설정의 텍스처 압축 옵션 설정을 오버라이드합니다. 압축 텍스처 포맷 중 하나로 임포트한 텍스처에만 영향을 미칩니다. |
|
Force Fast Compressor | 지원하는 포맷(BC7, BC6H, ASTC, ETC, ETC2)을 위해 더 빠르지만 품질은 낮은 텍스처 압축 모드를 사용합니다. 일반적으로 이렇게 하면 더 많은 압축 아티팩트가 생성되지만 더 많은 포맷을 위해 압축 자체는 2–20배 더 빠릅니다. 이 설정은 또한 Crunch 텍스처 압축 포맷을 가진 모든 텍스처에서 비활성화됩니다. 이 설정의 효과는 모든 텍스처의 Compressor Quality가 해당 플랫폼의 텍스처 가져오기 설정에서 Fast로 설정된 것과 같습니다. |
|
Force Uncompressed | 텍스처를 압축하지 마십시오. 대신 압축되지 않은 포맷을 사용합니다. 이렇게 하면 임포트를 더 빨리 할 수 있지만(텍스처 압축 프로세스를 건너뛰기 때문) 결과 텍스처가 메모리와 게임 데이터 크기를 더 많이 차지하며 렌더링 성능에 영향을 미칠 수 있습니다. 이 설정의 효과는 모든 텍스처의 Compression이 해당 플랫폼의 텍스처 임포트 설정에서 None으로 설정된 것과 같습니다. |
각 플랫폼에는 다음과 같은 특정 빌드 설정도 있습니다.
애플리케이션을 빌드하려면 다음 중 하나를 선택하십시오.