iOS 플레이어의 플레이어 설정을 사용하면 Unity가 iOS 플랫폼 타겟의 애플리케이션을 빌드하고 표시하는 방법을 커스터마이즈할 수 있습니다. 해당 설정은 Edit > Project Settings > Player로 이동한 다음 iOS 탭을 선택하여 액세스할 수 있습니다. 일반적인 플레이어 설정에 대한 자세한 내용은 플레이어 설정을 참조하십시오.
프로퍼티 관련 기술 자료는 다음 섹션에서 확인하십시오.
Apple 스토어의 애플리케이션 브랜딩을 커스터마이즈하려면 Icon 설정을 사용합니다.
각 iOS 기기에 대해 다음 유형의 커스텀 아이콘을 업로드하고 할당할 수 있습니다.
| 설정 | 설명 |
|---|---|
| Application icons | 애플리케이션의 메인 기기 아이콘입니다. |
| Spotlight icons | 스포트라이트 검색 결과에 표시되는 아이콘입니다. |
| Settings icons | 기기의 메인 설정 페이지에 표시되는 아이콘입니다. |
| Notification icons | 애플리케이션에서 전송된 알림에 표시되는 아이콘입니다. |
| Marketing icons | Apple 앱 스토어에서 사용할 아이콘입니다. |
아이콘 파일은 Unity가 지원하는 Texture2D 에셋의 형태로 이미지 파일이면 됩니다. 아이콘 텍스처가 누락되면 Unity는 가장 비슷한 크기의 아이콘 텍스처를 스케일링하며, 이 경우 더 큰 텍스처가 우선적으로 사용됩니다.
아래의 Resolution and Presentation 설정을 사용하여 화면 표시 방식을 커스터마이즈할 수 있습니다.
| 프로퍼티 | 설명 | |
|---|---|---|
| Resolution Scaling Mode | Resolution Scaling Mode 설정을 사용하면 스케일링을 네이티브 화면 해상도 이하가 되도록 설정할 수 있습니다. | |
| Disabled | 스케일링이 적용되지 않고 애플리케이션이 네이티브 화면 해상도로 렌더링합니다. | |
| FixedDPI | 이 값을 선택하면 Target DPI 프로퍼티가 표시됩니다. Target DPI 프로퍼티를 사용하여 게임 화면의 타겟 DPI를 설정하십시오. 기기의 네이티브 화면 DPI가 이 값보다 높은 경우, Unity는 이 설정과 일치하도록 게임 화면을 다운스케일링합니다. 이렇게 하면 성능이 향상되고 배터리 수명이 늘어납니다. 또한 이를 사용해 특정 DPI 설정을 타게팅할 수 있습니다. Unity는 스케일을 min(Target DPI * Factor / Screen DPI, 1)으로 계산합니다. 여기서 Factor는 Quality 설정에 입력한 Resolution Scaling Fixed DPI Factor 값입니다. |
|
| Reset resolution on window resize | 창 크기가 달라질 때 화면 해상도를 새 창에 맞게 설정합니다. Resolution Scaling Mode를 Fixed DPI로 설정하면 Fixed DPI 프로퍼티에 따라 해상도가 다시 계산됩니다. | |
| 프로퍼티 | 설명 | |
|---|---|---|
| Show Loading Indicator | 로딩 표시가 나타나는지 여부와 표시 방법을 지정합니다. | |
| Don’t Show | 로딩 표시를 나타내지 않습니다. | |
| 중간 | 기본 로딩 표시가 나타납니다. | |
| Large | 로딩 표시를 크게 나타냅니다. | |
| 프로퍼티 | 설명 | |
|---|---|---|
| Default Orientation | 기기 화면 내에서 애플리케이션 창의 방향을 지정합니다. 참고: Unity에서 지정한 이 설정의 값은 Android, iOS, UWP 모두에 적용됩니다. |
|
| Portrait | 애플리케이션 하단이 화면 하단에 맞춰지는 세로 방향입니다. | |
| Portrait Upside Down | 애플리케이션 하단이 화면 상단에 맞춰지는 세로 방향입니다. | |
| Landscape Right | 애플리케이션의 오른쪽이 화면 상단에 맞춰지는 가로 방향입니다. | |
| Landscape Left | 애플리케이션의 왼쪽이 화면 상단에 맞춰지는 가로 방향입니다. | |
| Auto Rotation | Allowed Orientations for Auto Rotation 섹션에서 지정한 방향으로 화면을 회전할 수 있습니다. | |
| Use Animated Autorotation (Deprecated) | 사용자가 기기를 회전할 때 화면 전환 애니메이션이 나타나게 합니다. 그렇지 않으면 화면이 즉시 회전됩니다. 참고: • Default Orientation을 Auto Rotation으로 설정한 경우에만 이 프로퍼티가 표시됩니다. • iOS 16 이상에서는 자동 회전 애니메이션이 항상 사용되므로 이 프로퍼티가 영향을 미치지 못합니다. • 이 프로퍼티는 지원이 중단되었으며 향후 릴리스에서 제거될 예정입니다. |
|
Default Orientation을 Auto Rotation으로 설정할 때 애플리케이션이 지원하는 방향을 지정하려면 Allowed Orientations for Auto Rotation 섹션을 사용하십시오. 이는 예컨대 애플리케이션을 가로 방향으로 고정하되 왼쪽 가로와 오른쪽 가로를 변경할 수 있도록 만들 때 사용할 수 있습니다.
참고: 이 섹션은 Orientation 섹션의 Default Orientation을 Auto Rotation으로 설정한 경우에만 표시됩니다.
| 프로퍼티 | 설명 | |
|---|---|---|
| Portrait | 애플리케이션의 하단이 화면 하단에 맞춰지는 형태의 세로 방향을 허용합니다. | |
| Portrait Upside Down | 애플리케이션의 하단이 화면 상단에 맞춰지는 형태의 세로 방향을 허용합니다. | |
| Landscape Right | 애플리케이션의 우측이 화면 상단에 맞춰지는 형태의 가로 방향을 허용합니다. | |
| Landscape Left | 애플리케이션의 좌측이 화면 상단에 맞춰지는 형태의 가로 방향을 허용합니다. | |
애플리케이션을 전체 화면 모드에서 실행해야 하는 경우 Requires Fullscreen 옵션을 활성화합니다.
Status Bar 섹션을 사용하여 iOS 상태 표시줄과 관련된 파라미터를 지정할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| Status Bar Hidden | 애플리케이션 실행 시 상태 표시줄을 숨깁니다. |
| Status Bar Style | 애플리케이션 실행 시 표시되는 상태 표시줄의 스타일을 정의합니다. |
| 프로퍼티 | 설명 | |
|---|---|---|
| Disable Depth and Stencil | 뎁스 및 스텐실 버퍼를 비활성화합니다. | |
| Render Over Native UI | 애플리케이션이 네이티브 UI 위에 렌더링되도록 강제합니다. 이 설정을 적용하려면 카메라의 Clear Flags를 알파 값이 1보다 작은 단색으로 설정합니다. | |
가상 현실 디스플레이에 표시될 커스텀 스플래시 이미지를 선택하려면 Virtual Reality Splash Image 설정을 사용하십시오. 일반적인 스플래시 화면 설정에 대한 상세 내용은 스플래시 화면을 참조하십시오.
실행 화면은 iOS가 기기에서 스플래시 화면을 만드는 데 사용하는 스토리보드 파일입니다. 관련 제한 사항은 다음과 같습니다.
이러한 제한은 커스텀 스토리보드에도 적용됩니다.
iPhone Launch Screen 및 iPad Launch Screen 섹션에서 iPhone 및 iPad에 대한 Launch screen type을 선택합니다.
| 프로퍼티 | 설명 | |
|---|---|---|
| Default | 이 옵션을 선택하면 Unity의 기본 스플래시 화면 배경과 동일한 컬러인 파란색/검정색의 단색 이미지가 추가됩니다. 이미지는 세로 및 가로 방향 모두에 사용되며, 종횡비 채우기 모드를 사용하여 표시됩니다. | |
| None | Apple은 실행 이미지를 더 이상 지원하지 않습니다. 이 옵션은 이전 버전과의 호환성을 위해 존재합니다. 이 옵션을 선택하면 프로젝트에 Unity의 기본 스플래시 화면이 사용됩니다. | |
| Image and background (relative size) | 화면 중앙에 이미지를 표시하고 나머지 영역을 단색으로 채웁니다. | |
| Portrait Image | 세로 방향에 대한 이미지를 선택합니다. | |
| Landscape Image | 가로 방향에 대한 이미지를 선택합니다. | |
| 배경색 | 이미지가 덮지 않는 스크린 공간을 채울 배경색을 선택합니다. | |
| Fill percentage | 이미지 크기를 화면 크기의 백분율로 지정합니다. Unity는 화면의 길이 또는 너비 중 더 작은 것을 기준으로 이미지 크기를 계산합니다(가로 디스플레이의 경우 수직, 세로 디스플레이의 경우 수평). | |
| Image and background (constant size) | 화면 중앙에 이미지를 표시하고 영역을 단색으로 채웁니다. 이 항목의 옵션은 Image and background (relative size)와 동일하되, 이미지 크기를 백분율이 아닌 포인트로 지정한다는 점에 차이가 있습니다. 팁: 포인트와 픽셀은 다른 개념입니다. 픽셀(px)은 이미지에서 하나의 점을 의미합니다. 포인트(pt)는 1인치의 1/72에 해당하는 길이의 단위입니다. 픽셀 크기는 화면 크기와 해상도에 따라 달라지지만, 포인트 크기는 모든 화면에서 동일합니다. 자세한 내용은 크기 단위에 대한 W3C 지침을 참고하십시오. |
|
| Custom Storyboard | 이 옵션을 선택하면 Custom Storyboard 버튼이 나타납니다. | |
| Custom Storyboard | 커스텀 스토리보드 파일을 로딩 화면으로 사용하려면 이 버튼을 선택하십시오. | |
iPhone 또는 iPad에 대한 Launch screen type 드롭다운 메뉴에서 Custom Storyboard 옵션을 선택하면 Custom Storyboard 버튼이 나타납니다.
게임이 기기에서 시작될 때 표시할 스토리보드를 선택하려면 Custom Storyboard 버튼을 클릭하십시오. 여기에 스토리보드를 표시하려면 Xcode로 스토리보드를 만든 후 프로젝트에 복사해야 합니다. 자세한 내용은 스토리보드, 씬 및 연결을 참조하십시오.
커스텀 스토리보드를 사용하지 않는 경우 Unity의 빌트인 실행 화면을 사용하여 스플래시 이미지를 구현할 수 있습니다.
디버깅 및 크래시 보고 설정을 사용하여 앱의 성능에 대한 데이터를 수집하고 크래시 문제를 해결하십시오.
| 프로퍼티 | 설명 |
|---|---|
| 내부 프로파일러 활성화(지원 중단 예정) | 이 기능은 지원이 중단되었으며 향후 Unity 버전에서 제거될 예정입니다. 대신 프로파일러 창을 사용하십시오. 프로파일러는 애플리케이션 성능 데이터를 수집하여 콘솔에서 보고서를 출력합니다. 해당 보고서에는 각 Unity 하위 시스템이 각 프레임에서 실행되는 데 소요되는 밀리초 단위 시간의 30프레임에 걸친 평균이 제시됩니다. |
| 프로퍼티 | 설명 | |
|---|---|---|
| On .Net UnhandledException | .NET 처리되지 않은 예외가 발생할 때 Unity가 취할 조치를 선택합니다. | |
| Crash | 애플리케이션에 크래시가 발생하면 크래시 보고서를 생성합니다. 사용자는 해당 리포트를 iTunes에 제출할 수 있으며 개발자는 그 내용을 토대로 크래시를 해결할 수 있습니다. | |
| Silent Exit | 애플리케이션이 오류 없이 종료되며 크래시 리포트를 생성하지 않습니다. | |
| Log Obj-C Uncaught Exceptions | Objective-C 확인 불가 예외 정보를 콘솔에 출력합니다. | |
| Enable Crash Report API | 커스텀 크래시 리포터를 활성화하여 크래시를 캡처합니다. 스크립트를 사용하여 CrashReport API를 통해 크래시 로그에 액세스할 수 있습니다. | |
Other Settings 섹션에서 다양한 플레이어 설정을 구성할 수 있습니다. 관련 옵션은 다음 그룹으로 구성됩니다.
다음 설정을 사용하여 Unity가 iOS 플랫폼용으로 애플리케이션을 렌더링하는 방법을 커스터마이즈합니다.
| 프로퍼티 | 설명 | |
|---|---|---|
| Color Space | 렌더링에 사용할 색 공간을 선택합니다. 자세한 내용은 리니어 렌더링 개요를 참조하십시오. | |
| Gamma | 감마 색 공간은 일반적으로 프레임버퍼 포맷에 대해 채널당 8비트로 제한된 구형 하드웨어에서 조명을 계산하는 데 사용됩니다. 현재 모니터는 디지털이지만 여전히 감마로 인코딩된 신호를 입력으로 받습니다. | |
| Linear | 리니어 색 공간 렌더링은 더 정확한 결과를 제공합니다. 리니어 색 공간을 사용하도록 선택하면 에디터는 기본적으로 sRGB 샘플링을 사용합니다. 텍스처가 리니어 색 공간에 있는 경우 리니어 색 공간으로 작업하고 각 텍스처에 대해 sRGB 샘플링을 비활성화해야 합니다. | |
| Color Gamut | 렌더링에 사용할 색 영역을 추가하거나 제거할 수 있습니다. 더하기(+) 아이콘을 클릭하면 사용 가능한 색 영역 목록이 표시됩니다. 색 영역은 각 기기(모니터 또는 스크린 등)에서 사용할 수 있는 컬러의 범위를 정의합니다. sRGB 영역은 기본 및 필수 영역입니다. | |
| Metal API Validation | 에디터 내의 툴을 사용하여 셰이더 문제를 디버깅하려면 이 옵션을 활성화합니다. 드로우 콜이 발생할 때, 이 툴은 셰이더가 예상하는 텍스처와 버퍼가 실제로 렌더링에 연결된 것과 일치하는지를 검사하고 그들의 호환성을 확인합니다. 확인 결과는 콘솔에서 확인할 수 있습니다. Metal API Validation은 Apple의 Metal API 확인을 활성화하지 않지만, macOS 및 iOS용 Build Settings 창에서 Run in Xcode as를 Debug로 설정하여 활성화할 수 있습니다. 참고: 이 설정은 macOS에서 에디터를 실행할 때만 표시됩니다. | |
| Metal Write-Only Backbuffer | 기본값이 아닌 기기 방향에서 성능이 개선되도록 허용합니다. 이 옵션은 백 버퍼에 frameBufferOnly 플래그를 설정하여 백 버퍼의 리드백(되읽기)을 방지하며 일부 드라이버 최적화는 활성화합니다. |
|
| Force hard shadows on Metal | Unity가 Metal의 그림자에 포인트 샘플링을 사용하도록 만들려면 이 옵션을 활성화합니다. 이렇게 하면 그림자 품질이 감소하여 성능이 향상될 수 있습니다. | |
| Memoryless Depth | 메모리리스 렌더 텍스처를 사용하는 경우를 선택합니다. 메모리리스 렌더 텍스처는 렌더링되는 동안 CPU 또는 GPU 메모리가 아닌 온타일 메모리에만 일시적으로 저장됩니다. 이로 인해 앱의 메모리 사용이 감소하지만 해당 렌더 텍스처에 대해 읽기와 쓰기를 수행할 수 없습니다. 참고: 메모리리스 렌더 텍스처는 iOS, ivOS 10.0+, Metal, Vulkan에서만 지원됩니다. 렌더 텍스처는 읽기/쓰기가 보호되고 다른 플랫폼의 CPU 또는 GPU 메모리에 저장됩니다. |
|
| Unused | 메모리리스 프레임버퍼 뎁스를 사용하지 않습니다. | |
| Forced | 항상 메모리리스 프레임버퍼 뎁스를 사용합니다. | |
| Automatic | Unity가 메모리리스 프레임버퍼 뎁스 사용을 결정합니다. | |
| Multithreaded Rendering | 이 옵션을 활성화하면 그래픽스 API 호출을 Unity의 메인 스레드에서 별도의 워커 스레드로 이동합니다. 이렇게 하면 메인 스레드에서 CPU 사용이 많은 애플리케이션의 성능을 개선하는 데 도움이 될 수 있습니다. | |
| Static Batching | 정적 배칭을 사용하려면 이 옵션을 활성화합니다. | |
| 동적 배칭 | 빌드에 동적 배칭을 사용합니다(기본적으로 활성화됨). 참고: 스크립터블 렌더 파이프라인이 활성화된 경우 동적 배칭은 효과가 없습니다. 즉, 이 설정은 스크립터블 렌더 파이프라인 에셋 그래픽스 설정이 비어 있을 때만 표시됩니다. |
|
| Sprite Batching Threshold | 배칭 시 사용되는 최대 버텍스 임계값을 제어합니다. | |
| GPU SKinning | 이 옵션을 선택하면 Metal GPU 컴퓨트 스키닝을 사용하여 추가 CPU 리소스를 확보합니다. | |
| Graphics Jobs (Experimental) | 그래픽스 작업(루프 렌더)을 다른 CPU 코어에서 실행 중인 워커 스레드에 오프로드하도록 Unity를 설정하려면 이 옵션을 활성화합니다. 메인 스레드에서 종종 병목 현상을 초래하는 Camera.Render에 소요되는 시간을 줄이기 위해 사용합니다. 참고: 이 기능은 실험 단계에 있습니다. 프로젝트의 성능이 향상되지 않을 수 있으며 새로운 크래시가 발생할 수도 있습니다. |
|
| 텍스처 압축 포맷 | iOS용 기본 텍스처 압축 포맷을 ASTC와 PVRTC 중에서 선택합니다. 자세한 내용은 텍스처 압축 포맷 개요를 참조하십시오. | |
| Normal Map Encoding | XYZ 또는 DXT5nm-style을 선택하여 노멀 맵 인코딩을 설정합니다. 이는 노멀 맵에 사용되는 인코딩 체계 및 압축 포맷에 영향을 줍니다. DXT5nm-style 노멀 맵은 품질이 더 높지만 셰이더에서 디코딩할 때 성능을 더 많이 소모합니다. | |
| Lightmap Encoding | 라이트맵의 인코딩 방식 및 압축 포맷을 정의합니다. Low Quality, Normal Quality, High Quality 중에서 선택할 수 있습니다 |
|
| HDR 큐브맵 인코딩 | HDR 큐브맵의 인코딩 방식 및 압축 포맷을 정의합니다. Low Quality, Normal Quality, High Quality 중에서 선택할 수 있습니다. 자세한 내용은 라이트맵: 기술 정보를 참조하십시오. |
|
| Lightmap Streaming | 라이트맵에 밉맵 스트리밍을 사용하려면 이 설정을 활성화합니다. Unity는 라이트맵을 생성할 때 모든 라이트맵에 이 설정을 적용합니다. 참고: 이 설정을 사용하려면 텍스처 밉맵 스트리밍 품질 설정을 활성화해야 합니다. |
|
| Streaming Priority |
밉맵 스트리밍 시스템에서 모든 라이트맵의 우선 순위를 설정합니다. Unity는 라이트맵을 생성할 때 모든 라이트맵에 이 설정을 적용합니다. 양수는 우선순위가 더 높습니다. 유효한 값은 -128부터 127까지입니다. |
|
| Frame Timing Stats | CPU/GPU 프레임 타이밍 통계를 수집하려면 이 옵션을 활성화합니다. | |
| Allow HDR Display Output | 애플리케이션이 실행될 때 HDR 모드 출력을 활성화합니다. 이 기능을 지원하는 디스플레이에서만 작동합니다. 디스플레이가 HDR 모드를 지원하지 않으면 게임이 표준 모드로 실행됩니다. | |
| Use HDR Display Output | 메인 디스플레이가 HDR 지원하는지 확인하고, 지원하는 경우 애플리케이션이 실행될 때 HDR 출력으로 전환합니다. 참고 이 옵션은 Allow HDR Display Output이 활성화된 경우에만 사용할 수 있습니다. |
|
| Swap Chain Bit Depth | 체인 버퍼에 대한 각 컬러 채널의 비트 수를 선택합니다. Bit Depth 10 또는 Bit Depth 16을 선택할 수 있습니다. 비트 뎁스에 대한 상세 내용은 D3DHDRDisplayBitDepth에 대한 스크립팅 API 페이지를 참조하십시오. 참고 이 옵션은 Use HDR Display Output이 활성화된 경우에만 사용할 수 있습니다. |
|
| Bit Depth 10 | Unity는 ST2084 PQ 인코딩이 포함된 Rec2020 프라이머리와 R10G10B10A2 버퍼 포맷을 사용합니다. | |
| Bit Depth 16 | Unity는 리니어 컬러(인코딩 없음)가 포함된 Rec709 프라이머리와 R16G16B16A16 버퍼 포맷을 사용합니다. | |
| Virtual Texturing | 씬에 고해상도 텍스처가 많은 경우 GPU 메모리 사용량과 텍스처 로딩 시간을 줄이려면 이 옵션을 활성화합니다. 자세한 내용은 가상 텍스처링을 참조하십시오. 참고: 이 설정이 적용되려면 Unity 에디터를 다시 시작해야 합니다. |
|
| 360 Stereo Capture | Unity가 스테레오 360 이미지 및 비디오를 캡처할 수 있는지를 지정합니다. 활성화하면 Unity가 추가 셰이더 배리언트를 컴파일하여 360 캡처를 지원합니다(현재는 Windows/OSX에서만 해당). enable_360_capture 키워드는 RenderToCubemap 호출 도중에 추가되지만 이 함수 외부에서는 트리거되지 않습니다. |
|
| Load/Store Action Debug Mode | 모바일 플랫폼에서 렌더링 문제를 일으킬 수 있는 정의되지 않은 픽셀을 하이라이트합니다. Build Settings에서 Development Build를 선택한 경우 Unity 에디터 게임 뷰와 빌드된 애플리케이션에 영향을 미칩니다. 자세한 내용은 LoadStoreActionDebugModeSettings를 참조하십시오. | |
앱의 식별 정보를 입력합니다.
| 프로퍼티 | 설명 |
|---|---|
| Override Default Bundle Identifier | 번들 식별자를 수동으로 설정할 수 있는지 여부를 나타냅니다. 참고: 이 설정은 macOS, iOS, tvOS, Android에 영향을 줍니다. |
| Bundle Identifier | 빌드하는 애플리케이션의 번들 식별자를 입력합니다. 식별자의 기본 구조는 com.CompanyName.ProductName입니다. 이 구조는 귀하의 거주 국가에 따라 달라질 수 있으므로, 항상 Apple이 개발자와 개발자 계정에 제공하는 문자열을 기본으로 설정하십시오. ProductName은 프로비저닝 인증서에 설정되어 있습니다.번들 식별자는 com.YourCompanyName.YourProductName 형식을 따라야 하며 영숫자와 하이픈으로만 구성되어야 합니다. 자세한 내용은 CFBundleIdentifier를 참조하십시오.중요: Unity는 유효하지 문자 입력을 자동으로 하이픈으로 대체합니다. 이 프로퍼티를 설정하려면 Override Default Bundle Identifier를 활성화합니다. |
| 버전 | 번들의 릴리스 버전 번호 스트링(예: 4.3.6)을 입력합니다. 연결된 info.plist 파일에서 이 값은 CFBundleShortVersionString으로 표시됩니다. 자세한 내용은 CFBundleShortVersionString을 참조하십시오. |
| 빌드 | 현재 앱 버전의 빌드 번호를 입력합니다. 연결된 info.plist 파일에서 이 값은 CFBundleVersion으로 표시됩니다. 자세한 내용은 CFBundleVersion을 참조하십시오. |
| 팀 ID 서명 | Apple 개발자 팀 ID를 입력합니다. Apple 개발자 웹사이트의 Xcode 도움말에서 확인할 수 있습니다. 이를 통해 생성된 Xcode 프로젝트의 팀 ID를 설정하여 개발자가 Build and Run 기능을 사용할 수 있게 하십시오. 앱이 자동으로 서명되도록 하려면 Apple 개발자 팀 ID를 입력해야 합니다. 자세한 내용은 팀 프로비저닝 프로파일 생성을 참고하십시오. |
| 자동 서명(Automatically Sign) | 이 옵션을 활성화하면 Xcode가 빌드를 자동으로 서명하도록 명령합니다. |
| 프로퍼티 | 설명 | |
|---|---|---|
| Scripting Backend | 사용할 스크립팅 백엔드를 선택합니다. 스크립팅 백엔드에 따라 Unity가 프로젝트의 C# 코드를 컴파일하고 실행하는 방식이 결정됩니다. | |
| Mono | C# 코드를 .NET 공용 중간 언어(CIL)로 컴파일하고, 공용 언어 런타임을 사용하여 해당 CIL을 실행합니다. 자세한 내용은 Mono를 참조하십시오. | |
| IL2CPP | C# 코드를 CIL로 컴파일하고, CIL을 C++로 전환한 다음, C++을 런타임에 직접 실행되는 네이티브 기계어 코드로 컴파일합니다. 자세한 내용은 IL2CPP를 참조하십시오. | |
| API 호환성 수준 | 프로젝트에 사용할 수 있는 .NET API를 선택합니다. 이 설정은 타사 라이브러리와의 호환성에 영향을 미칠 수 있습니다. 하지만 에디터 전용 코드(에디터 디렉토리 또는 에디터 전용 어셈블리 정의 내 코드)에는 영향을 미치지 않습니다. 팁: 타사 어셈블리에 문제가 있는 경우 아래의 API 호환성 수준 섹션에 있는 권장 해결 방법을 시도해 보십시오. |
|
| .Net Framework | .NET Framework 4와 호환됩니다(.NET Standard 2.0 프로파일의 모든 사항과 추가 API 포함). .NET Standard 2.0에 포함되지 않은 API에 액세스하는 라이브러리를 사용하는 경우 이 옵션을 선택합니다. 크기가 큰 빌드를 생성하며, 일부 플랫폼의 경우 추가 API를 사용하지 못할 수 있습니다. 자세한 내용은 추가 클래스 라이브러리 어셈블리 레퍼런스를 참조하십시오. | |
| .Net Standard 2.1 | 작은 빌드를 생성하고 크로스 플랫폼을 완벽하게 지원합니다. | |
| 에디터 어셈블리 호환성 레벨 | 에디터 어셈블리에 사용할 .NET API를 선택합니다. | |
| .NET Framework | .NET Framework 4와 호환됩니다(.NET Standard 2.1 프로파일의 모든 사항과 추가 API 포함). .NET Standard 2.1에 포함되지 않은 API에 액세스하는 라이브러리를 사용하는 경우 이 옵션을 선택합니다. 크기가 큰 빌드를 생성하며, 일부 플랫폼의 경우 추가 API를 사용하지 못할 수 있습니다. 자세한 내용은 추가 클래스 라이브러리 어셈블리 레퍼런스를 참조하십시오. | |
| .NET Standard | .NET Standard 2.1과 호환됩니다. 작은 빌드를 생성하고 크로스 플랫폼을 완벽하게 지원합니다. | |
| IL2CPP Code Generation | Unity가 IL2CPP 코드 생성을 관리하는 방법을 정의합니다. 참고: 이를 사용하려면 Scripting Backend를 IL2CPP로 설정하십시오. |
|
| C++ Compiler Configuration | IL2CPP 생성 코드를 컴파일할 때 사용한 C++ 컴파일러 설정을 선택합니다. | |
| Debug | Debug 설정은 모든 최적화 기능을 비활성화합니다. 이렇게 하면 코드를 더 빠르게 빌드할 수 있지만 실행 속도가 느려집니다. | |
| Release | Release 설정을 사용하면 최적화가 가능하므로 컴파일된 코드가 더 빠르게 실행되고 바이너리 크기는 더 작아지지만 컴파일하는 데 더 오래 걸립니다. | |
| Master | Master 설정은 가능한 모든 최적화를 가능하게 하여 성능을 최대한 끌어올립니다. 예를 들어 MSVC++ 컴파일러를 사용하는 플랫폼에서 이 옵션을 사용하면 링크 타임 코드를 생성할 수 있습니다. 이 설정을 사용하여 코드를 컴파일하면 릴리스 설정을 사용할 때보다 훨씬 오래 걸릴 수 있습니다. 빌드 시간이 길어져도 된다면 Unity는 Master 설정을 사용하여 게임의 최종 버전을 빌드할 것을 권장합니다. | |
| IL2CPP Stacktrace Information | 스택 추적에 포함할 정보를 선택합니다. 정보 유형에 대한 자세한 내용은 IL2CPP로 관리되는 스택 추적을 참조하십시오. | |
| Method Name | 스택 추적에 각각의 관리되는 메서드를 포함합니다. | |
| Method Name, File Name, and Line Number | 스택 추적에 각각의 관리되는 메서드와 파일 및 줄 번호 정보를 포함합니다. 참고: 이 옵션을 사용하면 빌드된 프로그램의 빌드 시간과 최종 크기를 모두 늘릴 수 있습니다. |
|
| Use incremental GC | 점진적 가비지 컬렉터를 사용려면 이 옵션을 활성화합니다. 점진적 가비지 컬렉터는 가비지 컬렉션을 여러 프레임에 분산하여 프레임 기간 동안 가비지 컬렉션과 관련된 스파이크를 줄입니다. 자세한 내용은 자동 메모리 관리를 참조하십시오. | |
| Allow downloads over HTTP | HTTP를 통해 콘텐츠를 다운로드할지 나타냅니다. HTTPS가 더 안전한 권장 프로토콜이므로 Not allowed가 기본 옵션입니다. | |
| Not Allowed | HTTP를 통한 다운로드를 허용하지 않습니다. | |
| Allowed in Development Builds | 개발 빌드에서 HTTP를 통한 다운로드만 허용합니다. | |
| Always Allowed | 개발 및 릴리스 빌드에서 HTTP를 통한 다운로드를 허용합니다. | |
| Camera Usage Description | 기기의 카메라에 액세스하는 이유를 입력할 수 있습니다. | |
| Microphone Usage Description | 기기의 마이크에 액세스하는 이유를 입력할 수 있습니다. | |
| Location Usage Description | 기기의 위치에 액세스하는 이유를 입력할 수 있습니다. | |
| Use On-Demand Resources | 온디멘드 리소스를 사용하고 Variant map for app slicing을 활성화합니다. | |
| Accelerometer Frequency | 가속 센서의 샘플링 빈도를 선택합니다. 성능을 높이려면 빈도를 낮추십시오. 가속 센서를 사용하지 않는 앱의 경우 Disabled를 선택하십시오. | |
| Mute Other Audio Sources | Unity 애플리케이션이 백그라운드에서 실행되는 애플리케이션의 오디오를 중지해야 하는지 여부를 나타냅니다. 중지하지 않으면 백그라운드 애플리케이션의 오디오가 Unity 애플리케이션과 함께 계속 재생됩니다. | |
| Prepare iOS for Recording | 마이크 녹음 API를 초기화합니다. 이렇게 하면 녹음 대기 시간이 줄어지만 이어폰을 통해 iPhone 오디오 출력이 다시 라우팅됩니다. | |
| Force iOS Speakers when Recording | 헤드폰이 연결되어 있고 녹음 중인 경우에도 내부 스피커를 통해서 휴대폰의 오디오 출력을 전달합니다. | |
| Requires Persistent WiFi | Wi-Fi 연결을 요구하려면 이 옵션을 활성화합니다. 이렇게 하면 앱이 실행되는 동안 활성 Wi-Fi 연결이 유지됩니다. | |
| Supported URL schemes |
지원되는 URL 체계 리스트입니다. 새 체계를 추가하려면 Size 프로퍼티의 값을 늘린 다음, 새로 표시되는 Element 상자에서 열 URL에 대한 레퍼런스를 설정합니다. |
|
| Target Device | 앱이 타게팅하는 기기를 선택합니다. | |
| Target SDK | 앱이 타게팅하는 SDK를 선택합니다. 참고: 올바른 SDK를 선택해야 합니다. 예를 들어 Unity에서 Device SDK를 선택하고 Xcode에서는 시뮬레이터를 타게팅하면 빌드가 실패합니다. |
|
| Target minimum iOS Version | 앱이 작동하는 iOS 최소 버전을 선택합니다. | |
| Enable ProMotion Support | ProMotion 디스플레이에서 고주파수 새로고침 속도(120Hz)를 사용합니다. 이 설정을 사용하면 앱이 더 많은 배터리를 소모할 수 있습니다. | |
| Requires ARKit support | 앱 스토어에 퍼블리시할 때 앱을 iPhone 6s/iOS 11 이상의 기기로 제한합니다. | |
| Automatically add capabilities | 프로젝트에서 Game Center 기능이 감지된 경우 entitlements.plist 파일을 생성하고 관련 기능을 추가합니다. 엔터프라이즈 인증서로 앱에 서명하거나 와일드카드 번들 식별자를 사용하려는 경우 이 설정을 비활성화하십시오. |
|
| Defer system gestures on edges | 사용자가 시스템 제스처를 실행하기 위해 두 번 스와이프해야 하는 모서리를 하나 이상 선택합니다. | |
| Hide home button on iPhone X | 앱이 실행 중일 때 iPhone X 기기에서 홈 버튼을 숨깁니다. | |
| Render Extra Frame on Pause | 앱이 일시 정지될 때 프레임 이후에 추가 프레임을 생성합니다. 이를 통해 앱이 백그라운드로 전환될 때 일시 정지 상태를 표시하는 그래픽스를 표시할 수 있습니다. | |
| Enable Custom Background Behaviors | 사용자가 앱을 백그라운드로 보낼 때 앱이 수행할 수 있는 작업을 선택합니다. 관련 예시는 BackgroundFetch GitHub 프로젝트를 참조하십시오. | |
| Variant map for app slicing | 앱 슬라이싱을 위한 배리언트 맵 섹션을 확장하여 스크립팅에서 설정된 배리언트 이름 리스트를 찾습니다. 배리언트에 대한 자세한 내용은 앱 슬라이싱을 참조하십시오. 참고: 이 프로퍼티를 보려면 Use on-demand resources를 활성화하십시오. |
|
| 아키텍처 | 타겟팅할 아키텍처를 선택합니다. iOS에서는 ARM64만 사용할 수 있습니다. | |
| Simulator Architecture | 시뮬레이터용으로 빌드할 아키텍처를 선택합니다. 이 프로퍼티는 Target SDK를 Simulator SDK로 설정한 경우에만 표시됩니다. | |
| ARM64 | 64비트 ARM 아키텍처를 지원합니다. | |
| X86_64 | 64비트 Intel/AMD 아키텍처를 지원합니다. | |
| Universal | 64비트 ARM 및 Intel/AMD를 비롯한 모든 아키텍처를 지원합니다. | |
| Active Input Handling | 사용자의 입력을 처리하는 방식을 선택합니다. | |
| Input Manager (Old) | 기존의 입력 설정을 사용하십시오. | |
| Input System Package (New) | 입력 시스템을 사용합니다. 이 옵션을 사용하려면 InputSystem 패키지를 설치해야 합니다. | |
| Both | 두 시스템 모두 사용합니다. | |
모든 타겟에 대한 모노 API 호환성 레벨을 선택할 수 있습니다. 타사 .NET 라이브러리가 .NET 호환성 레벨을 벗어난 기능을 사용하는 경우도 있습니다. Windows를 사용하는 경우, 타사 소프트웨어인 ILSpy를 사용하여 문제와 해결 방법을 파악할 수 있습니다. 다음 단계를 따르십시오.
Frameworks/Mono/lib/mono/YOURSUBSET/에서 찾을 수 있습니다.
| 프로퍼티 | 설명 | |
|---|---|---|
| Shader Precision Model | 사용하는 기본 정밀도 셰이더를 선택합니다. 자세한 내용은 셰이더에서 16비트 정밀도 사용을 참조하십시오. | |
| Platform default | 모바일 플랫폼에서는 더 낮은 정밀도를 사용하고, 다른 플랫폼에서는 최대 정밀도를 사용합니다. | |
| Unified | 플랫폼에서 지원하는 경우 더 낮은 정밀도를 사용합니다. | |
| Strict shader variant matching | 셰이더 배리언트가 누락된 경우 오류 셰이더를 사용하여 콘솔에 오류를 표시합니다. | |
| Keep Loaded Shaders Alive | 로딩된 모든 셰이더를 활성 상태로 유지하고 언로딩을 방지합니다. | |
이 설정을 사용하여 런타임에 셰이더가 사용하는 메모리 양을 제어할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| Default chunk size (MB) | 모든 플랫폼에 Unity가 빌드된 애플리케이션에 저장하는 압축된 셰이더 배리언트 데이터 청크의 최대 크기를 설정합니다. 기본값은 16입니다. 자세한 내용은 셰이더 로딩을 참조하십시오. |
| Default chunk count | Unity가 모든 플랫폼에서 메모리에 보관하는 압축 해제된 청크의 기본 제한을 설정합니다. 기본값은 0이므로 제한이 없습니다. |
| Override | 이 빌드 타겟에 Default chunk size 및 Default chunk count 를 오버라이드할 수 있습니다. |
| Chunk size (MB) | 이 빌드 타겟에서 Default chunk size (MB) 값을 오버라이드합니다. |
| Chunk count | 이 빌드 타겟에서 Default chunk count 값을 오버라이드합니다. |
.
| 프로퍼티 | 설명 |
|---|---|
| Scripting Define Symbols | 커스텀 컴파일 플래그를 설정합니다. 자세한 내용은 플랫폼별 컴파일을 참조하십시오. |
| Additional Compiler Arguments | 이 리스트에 엔트리를 추가하여 Roslyn 컴파일러에 추가 인자를 전달합니다. 각 추가 인수에 하나의 새 엔트리를 사용합니다. 새 항목을 만들려면 Add(+)를 클릭합니다. 항목을 제거하려면 Remove(-)를 클릭합니다. 원하는 인자를 모두 추가한 후, 추가 인자를 향후 컴파일에 포함하려면 Apply를 클릭합니다. 이 리스트를 가장 최근에 적용된 상태로 초기화하려면 Revert를 클릭합니다. |
| Suppress Common Warnings | C# 경고 CS0169 및 CS0649를 표시할지 여부를 나타냅니다. |
| Allow ‘unsafe’ Code | 사전 정의된 어셈블리(예: Assembly-CSharp.dll)에서 ‘안전하지 않은’ C# 코드 컴파일에 대한 지원을 활성화합니다. 어셈블리 정의 파일( .asmdef)의 경우 .asmdef 파일 중 하나를 클릭하고 인스펙터 창에 표시되는 옵션을 활성화합니다. |
| Use Deterministic Compilation | -deterministic C# 플래그로 컴파일을 방지할지 여부를 나타냅니다. 이 설정을 활성화하면 컴파일된 어셈블리는 컴파일될 때마다 바이트단위로 동일합니다. 자세한 내용은 코드 생성을 제어하는 C# 컴파일러 옵션을 참조하십시오. |
| 프로퍼티 | 설명 | |
|---|---|---|
| Prebake Collision Meshes | 빌드 시 충돌 데이터를 메시에 추가합니다. | |
| Preloaded Assets | 시작 시 플레이어가 로드할 에셋의 배열을 설정합니다. 새 에셋을 추가하려면 Size 프로퍼티의 값을 늘린 다음, 새로 표시되는 Element 상자에 로드할 에셋에 대한 레퍼런스를 설정합니다. |
|
| AOT Compilation Options | AOT(Ahead-of-Time) 컴파일을 위한 추가 옵션입니다. 빌드한 iOS 플레이어 크기 최적화에 도움이 됩니다. | |
| 엔진 코드 스트립 | Unity Linker 툴을 이용하여 프로젝트에서 사용되지 않는 Unity 엔진 기능의 코드를 제거하려면 이 옵션을 활성화합니다. 이 설정은 IL2CPP 스크립팅 백엔드와만 사용할 수 있습니다. 대부분의 앱이 사용할 수 있는 모든 DLL을 사용하지는 않습니다. 이 옵션은 앱이 사용하지 않는 DLL을 제거하여 플레이어의 빌드 크기를 줄입니다. 앱이 현재 설정에서 일반적으로 제거되는 하나 이상의 클래스를 사용 중인 경우, 앱을 빌드하려고 할 때 Unity가 디버그 메시지를 표시합니다. | |
| Managed Stripping Level | Unity가 사용하지 않는 관리되는 (C#) 코드를 얼마나 적극적으로 스트리핑할지 선택합니다. Unity가 앱을 빌드할 때 Unity Linker 프로세스는 프로젝트에서 사용하는 관리되는 DLL에서 사용되지 않는 코드를 스트리핑할 수 있습니다. 코드를 스트리핑하면 결과 실행 파일이 작아지지만, 사용 중인 코드를 제거할 수도 있습니다. 이러한 옵션과 IL2CPP를 사용한 바이트코드 스트리핑에 대한 자세한 내용은 ManagedStrippingLevel을 참조하십시오. |
|
| Minimal | 이를 사용해 클래스 라이브러리, UnityEngine, Windows Runtime 어셈블리를 스트리핑하고 다른 모든 어셈블리를 복사할 수 있습니다. | |
| 낮음 | 도달할 수 없는 관리되는 코드를 제거하여 빌드 크기를 줄이고 Mono/IL2CPP 빌드 시간을 단축합니다. | |
| 중간 | UnityLinker를 실행하여 Low 이상으로 코드 크기를 줄입니다. 커스텀 link.xml 파일을 지원해야 할 수 있으며 일부 반사 코드 경로는 동일하게 동작하지 않을 수 있습니다. | |
| 높음 | UnityLinker는 최대한 많은 코드를 스트리핑합니다. 이렇게 하면 Medium 이상으로 코드 크기를 줄일 수 있지만, 일부 메서드의 관리되는 코드 디버깅은 더 이상 작동하지 않을 수 있습니다. 커스텀 link.xml 파일을 지원해야 할 수 있으며 일부 반사 코드 경로는 동일하게 동작하지 않을 수 있습니다. | |
| Script Call Optimization | 런타임 시점의 속도 향상을 위해 예외 처리를 비활성화하는 방법을 선택합니다. 자세한 내용은 iOS 최적화를 참조하십시오. | |
| Vertex Compression | 채널당 버텍스 압축을 설정합니다. 이는 프로젝트의 모든 메시에 영향을 미칩니다. 일반적으로 버텍스 압축은 메모리 내의 메시 데이터 크기를 줄이고 파일 크기를 줄이며 GPU 성능을 향상시키는 데 사용됩니다. 버텍스 압축을 설정하는 방법과 이 설정의 제한 사항에 대한 자세한 내용은 메시 데이터 압축을 참조하십시오. |
|
| Optimize Mesh Data | 빌드에 사용된 메시에서 미사용 버텍스 속성 스트리핑하려면 이 옵션을 활성화합니다. 이 옵션은 메시의 데이터 양을 줄여 빌드 크기, 로딩 시간, 런타임 메모리 사용량을 줄일 수 있습니다. 경고: 이 설정을 활성화한 경우 런타임 시 머티리얼 또는 셰이더 설정을 변경하지 마십시오. 자세한 내용은 PlayerSettings.stripUnusedMeshComponents를 참조하십시오. |
|
| 텍스처 밉맵 스트리핑 | 모든 플랫폼에 대한 밉맵 스트리핑을 활성화합니다. 그러면 빌드 시 텍스처에서 사용하지 않는 밉맵이 제거됩니다. Unity는 밉맵의 값을 현재 플랫폼의 품질 설정과 비교하여 사용하지 않는 밉맵을 결정합니다. 현재 플랫폼의 모든 품질 설정에서 밉맵 값이 제외된 경우 Unity는 빌드 시점에 해당 밉맵을 빌드에서 제거합니다. QualitySettings.globalTextureMipmapLimit이 제거된 밉맵 값으로 설정된 경우, Unity는 제거되지 않은 가장 가까운 밉맵 값으로 값을 설정합니다. |
|
각 로그 유형에 해당하는 옵션을 활성화하여 원하는 로깅 유형을 선택합니다.
| 프로퍼티 | 설명 |
|---|---|
| None | 어떤 로그도 기록하지 않습니다. |
| ScriptOnly | 스크립트를 실행할 때만 로그합니다. |
| Full | 항상 로그합니다. |
자세한 내용은 스택 추적 로깅을 참조하십시오.
| 프로퍼티 | 설명 |
|---|---|
| Clamp BlendShapes (지원 중단 예정) | SkinnedMeshRenderers의 블렌드 셰이프 가중치 범위를 고정하려면 이 옵션을 활성화합니다. |
PlayerSettingsiOS