본문 바로가기
Unity/세팅

유니티 빌드 세팅(Build Settings)

by Jinger 2023. 10. 31.

서론

    유니티 빌드(Build) 세팅을 설정하는 이유는 여러 가지가 있다. 첫째, 성능 최적화를 위해 특정 플랫폼에 맞게 최적화하여 사용자 경험을 향상시킨다. 둘째, 다양한 플랫폼 호환성을 보장하기 위해 각 플랫폼의 요구 사항에 맞게 설정한다. 셋째, 효율적인 리소스 관리를 통해 파일 크기를 줄이고 메모리 사용량을 최적화하여 성능을 향상시킨다. 또한, 보안 측면에서 적절한 설정은 애플리케이션의 취약점을 최소화하고 사용자 데이터를 보호한다. 마지막으로, 디버깅과 테스팅을 원활하게 수행하고 배포 및 유지보수를 효율적으로 관리하기 위해 빌드 설정이 중요하다.


공통

    유니티에서 File > Build Settings를 통해 아래와 같은 화면을 확인할 수 있다.

빌드의 씬 관리(Scenes In Build)

    애플리케이션을 빌드할 때 Unity는 Scenes In Build 창에서 선택된 모든 씬을 빌드한다. Unity는 리스트에 표시되는 순서대로 씬을 빌드한다. 즉, "Scenes In Build"를 통해 씬을 추가, 제외, 제거 및 순서 변경을 수행할 수 있다. 현재 열려 있는 씬을 모두 리스트에 추가하려면 Add Open Scenes를 선택한 후 Project 창에서 리스트로 씬을 드래그할 수도 있다. 빌드에서 리스트에 있는 씬을 제외하려면 해당 씬 옆의 체크박스를 해제하면 된다. 이렇게 하면 빌드에서 씬은 제거되지만 리스트에는 남아있다. 리스트에서 씬을 제거하려면 해당 씬을 선택하고 Delete를 누른다. 해당 씬 순서를 변경하려면 리스트에서 씬을 드래그 앤 드롭하여 순서를 변경할 수 있다.

플랫폼 리스트

     각 빌드는 반드시 타겟 플랫폼을 포함해야 한다. 플랫폼 창에는 빌드할 수 있는 모든 플랫폼이 나열된다. 컴퓨터에 설치된 각 Unity 버전에는 자체 플랫폼 리스트가 포함되어 있다. 필요한 플랫폼이 리스트에 없는 경우 다음과 같은 방법으로 설치를 해야 한다. 첫째, Build Settings 창에서 추가하려는 플랫폼을 선택한다. Install이나 Download를 선택한다. In Unity Hub > Installs 사용 중인 Unity 버전에서 세 개의 점()을 선택한다. 이후 Add Modules를 선택한다. 그러면 해당 지침을 따라 플랫폼 모듈을 설치할 수 있다.

   빌드의 타겟 플랫폼을 변경하려면 전환하려는 플랫폼을 선택한다. 리스트는 타겟 플랫폼으로 현재 선택된 플랫폼 옆에 Unity 아이콘을 표시된다. 해당 플랫폼으로 변경하고 싶다면 Switch Platforms을 선택하여 변경할 수 있다. 타겟 플랫폼과 일치하는 포맷에 에셋을 다시 임포트해야 할 경우 전환 프로세스는 시간이 오래 걸릴 수 있다.

빌드 설정

    플랫폼을 선택하면 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 데이터가 포함된다.

# WebGL 플랫폼에서는 이 옵션을 사용할 수 없다.
  Default Android 기본 압축 방식은 ZIP이며 LZ4HC보다 압축률이 조금 낫다. 하지만 ZIP 데이터는 압축 풀기가 조금 느리다.

# PC, Mac, Linux 스탠드얼론, iOS에는 기본 압축 방식이 없다.
  LZ4 개발용 빌드에 적합한 고속 압축 포맷이다.
  LZ4HC 높은 압축률을 자랑하는 LZ4 변형 포맷이다. LZ4HC는 빌드 속도가 비교적 느리지만 릴리스 빌드에서 더 뛰어난 결과를 제공한다.

에셋 임포트 오버라이드

    임포트와 플랫폼 전환 시간을 단축하려면 로컬에서 모든 텍스처 임포트 설정을 오버라이드할 수 있다. 일반적으로 임포트 오버라이드와 최종 빌드를 제공하지는 않지만 개발 중에는 특히 에셋(여기의 경우 텍스처)이 가능한 한 좋게 보이는 것을 고려하지 않는 경우 반복 시간을 단축하는 데 유용할 수 있다. 초기 프로젝트 임포트에 대한 에셋 임포트 오버라이드를 설정하려면 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으로 설정된 것과 같다.

애플리케이션 빌드

    애플리케이션을 빌드하려면 다음 중 하나를 선택하게 된다.

  • Build: 플레이어를 컴파일한 다음 아무것도 하지 않는다. 기본 빌드는 항상 전체 비증분(클린) 빌드인 첫 번째 빌드를 제외하고 증분 빌드이다. 증분 빌드 대신 클린 빌드를 강제하려면 드롭다운 메뉴에서 클린 빌드를 선택한다.
  • Build and run: 플레이어를 컴파일하여 타겟 플랫폼에서 연다. 이 옵션은 항상 증분 빌드에서 사용한다.

컴퓨터(스탠드얼론 {Mac OSX, Window, Linux})

Window

설정 설명
Target Platforom   Windows를 선택하여 Windows 플랫폼용 앱을 빌드한다.
Architecture   빌드할 CPU를 선택한다(빌드 및 실행에만 적용됨).
  Intel 64-bit Intel/AMD 64-bit CPU 아키텍처
  Intel 32-bit Intel 32-bit CPU 아키텍처
  ARM 64-bit ARM 64-bit CPU 아키텍처
Copy PDB files   이 설정을 활성화하면 빌드한 Windows 플레이어에 Microsoft PDB(Program Database, 프로그램 데이터베이스) 파일을 포함한다. PDB 파일에는 애플리케이션에 대한 디버깅 정보가 들어 있지만, 이로 인해 플레이어 크기가 커질 수 있다.
Create Visual Studio Solution   Microsoft Visual Studio에서 직접 빌드할 수 있도록 프로젝트에 대한 Visual Studio 솔루션 파일을 생성하려면 이 설정을 활성화한다.

Mac OS

설정 설명
Target Platforom   macOS를 선택하여 macOS 플랫폼용 앱을 빌드한다.
Architecture   빌드할 CPU를 선택한다(빌드 및 실행에만 적용됨).
  Intel 64-bit Intel/AMD 64-bit CPU 아키텍처
  Apple Silicon Apple’s Silicon  아키텍처
  Intel 64-bit + Apple Silicon 두 아키텍처 모두 사용
Create Xcode Project   Unity 프로젝트를 빌드할 때 Xcode 프로젝트를 생성한다.

Linux

설정 설명
Target Platforom Linux를 선택하여 Linux 플랫폼용 앱을 빌드한다.

안드로이드

설정 설명
Texture Compression 빌드에 사용할 텍스처 압축 형식이다. 옵션은 다음과 같다.
• 플레이어 설정 사용: 플레이어 설정에서 설정한 텍스처 압축 형식을 사용한다.
• ETC(GLES 2.0): ETC 형식을 사용한다.
• ETC2(GLES 3.0): ETC2 형식을 사용한다.
• ASTC: ASTC 형식을 사용한다.
• DXT(Tegra): DXT 형식을 사용한다.
• PVRTC(PowerVR): PVRTC 형식을 사용한다(더 이상 사용되지 않음).

스크립트에서 또는 -setDefaultPlatformTextureFormat 명령줄 스위치를 사용하여 이 설정을 변경할 수도 있다.
참고: 텍스처 압축 타겟팅을 활성화하면 Unity는 이 설정을 비활성화해야한다. 텍스처 압축 형식에 대한 자세한 내용은 플랫폼별 권장, 기본 및 지원되는 텍스처 압축 형식을 참조 바란다.
Export Project Unity 프로젝트를 Android Studio로 가져올 수 있는 Gradle 프로젝트로 내보낼지 여부를 나타낸다.
Symlink Sources Unity와 내보낸 Gradle 프로젝트 간에 Java 및 Kotlin 소스 파일을 공유할지 여부를 나타낸다.

Gradle 프로젝트가 Unity 프로젝트의 Java 및 Kotlin 소스 파일을 참조하도록 심볼릭 링크를 생성하려면 이 설정을 활성화한다. 이렇게 하면 Java 및 Kotlin 코드를 테스트하고 반복하는 데 도움이 된다. 이는 Unity 프로젝트를 다시 내보내도 내보낸 Gradle 프로젝트의 Java 및 Kotlin 소스 파일에 대한 모든 변경 사항이 유지된다는 의미이기 때문이다. Unity가 Java 및 Kotlin 소스 파일을 Unity 프로젝트에서 내보낸 Gradle 프로젝트로 복사하도록 하려면 이 설정을 비활성화한다.

프로젝트 내보내기를 활성화한 경우에만 이 설정과 상호 작용할 수 있다.
Build App Bundle (Google Play) Google Play에서 배포하기 위해 Android App Bundle(AAB)을 구축할 수 있는지 여부를 확인한다. 이 설정을 활성화하는 경우 Unity는 AAB를 빌드한다. 이 설정을 도입하는 경우 Unity는 APK로 빌드된다.

# 이 설정은 프로젝트 내보내기를 요청하는 경우에만 표시된다.
Export for App Bundle Android 앱 번들로 빌드하기 위해 익스포트된 Gradle 프로젝트를 설정할지 여부를 나타낸다.

# 이 설정은 Export Project를 활성화하는 경우에만 표시된다.
Create symbols.zip 애플리케이션을 빌드할 때 Unity가 심볼 패키지를 생성하는 방법을 지정한다. 옵션은 다음과 같다.
• Disabled: Unity가 심볼 패키지를 생성하지 않는다.
• Public: Unity는 애플리케이션용 공용 심볼 패키지를 생성한다.
• Debugging: Unity가 애플리케이션용 심볼 디버깅 패키지를 생성한다.
Run Device 빌드를 테스트할 연결된 장치를 지정한다. USB를 통해 연결된 장치는 자동으로 목록에 나타난다. 새 장치를 연결하거나 목록에서 연결된 장치를 찾을 수 없으면 새로 고침을 클릭하라. Android 디버그 브리지를 통해 새 장치를 무선으로 연결하려면 <IP 입력> 옵션을 선택해야한다.
Build to Device 전체 빌드를 생성하지 않고 대신 마지막 패치 이후 변경된 단일 파일을 장치에 직접 배포하는 빌드 파이프라인이다. Patch는 변경된 파일을 장치에 배포하고 Patch And Run은 변경된 파일을 배포한 후 장치에서 응용 프로그램을 실행한다. 

# Development Build를 활성화한 경우에만 이 설정과 상호 작용할 수 있다.

iOS

설정 설명
Run in Xcode

프로젝트를 열 Xcode 버전을 선택한다. 최신 버전을 선택하거나 드롭다운 목록에서 특정 버전을 선택할 수 있다. 이 목록에 나타나지 않는 특정 Xcode 버전이 컴퓨터에 설치되어 있는 경우 기타를 선택하여 나타나는 응용 프로그램 창에서 버전을 찾아야 한다. Unity가 컴퓨터에서 Xcode 설치를 찾을 수 없는 경우 찾아보기 버튼을 선택하여 컴퓨터에 Xcode 설치 디렉터리(있는 경우)를 찾는다.

# 이 옵션은 macOS에서 Unity를 실행할 때만 표시된다.
Run in Xcode as

Xcode가 프로젝트를 릴리스 또는 디버그 빌드로 실행할지 여부를 선택한다.
  Release 앱의 최적화된 버전을 빌드한다.
  Debug
디버깅에 도움이 되는 추가 코드가 포함된 앱의 테스트 버전을 빌드한다.
Symlink Sources

Unity 라이브러리를 Xcode 프로젝트에 복사하는 대신 참조한다. 이 옵션은 Xcode 프로젝트 크기를 줄이고 반복 시간을 더 빠르게 만든다.

주섬주섬

  • 빌드 씬 관리를 통해야서만 씬과의 이동이 가능하다.
  • 유니티 버전에 따라 위나 아래 참조에 해당되지 않은 기능이 있거나 없을 수도 있다. 블로그를 올린 기준 가능한 최신 버전을 참고하였다.

참고

 

빌드 설정 - Unity 매뉴얼

Unity는 다양한 플랫폼과 다양한 설정으로 애플리케이션을 빌드할 수 있습니다. 이 문서에서는 씬, 타겟 플랫폼, 빌드를 위한 설정 방법을 다룹니다.

docs.unity3d.com

 

플랫폼 개발 - Unity 매뉴얼

Before starting out with the Unity Editor, you might want to familiarize yourself with the platforms that you can create your projects in. Unity supports most of the leading desktop, web, and mobile platforms:

docs.unity3d.com

 

반응형

'Unity > 세팅' 카테고리의 다른 글

유니티 플랫폼 별 플레이어 세팅(Player Settings)  (1) 2023.10.31

댓글