Version: 2023.2
언어: 한국어
UWP용 환경 설정
유니버설 Windows 플랫폼용 개발

UWP 플레이어 설정

Universal Windows Platform (UWP) 플레이어 설정에 액세스하려면 Unity의 메인 메뉴에서 Edit* > Preferences > Project Settings > Player로 이동하십시오.이 플레이어 설정을 사용하여 Unity가 최종 애플리케이션을 빌드하고 표시하는 방식을 결정할 수 있습니다.일반적인 플레이어 설정에 대한 설명은 플레이어 설정을 참조하십시오.

UWP용 플레이어 설정
UWP용 플레이어 설정

프로퍼티 문서는 플레이어 UI 섹션에 나열된 순서대로 그룹화되었습니다.

아이콘(Icon)

Microsoft 스토어의 앱 브랜딩을 커스터마이즈하려면 Icon 설정을 사용하십시오.

UWP용 아이콘 설정
UWP용 아이콘 설정

아이콘 섹션에는 인증에 필요하지만 할당되지 않은 이미지에 대한 경고가 표시됩니다.UWP 애플리케이션은 패키지의 일부로 아이콘 및 로고 이미지를 지정해야 Microsoft 스토어에 제출할 수 있습니다.

참고:API 내에서 이미지 타입과 이미지 크기를 선택할 수도 있습니다.자세한 내용은 PlayerSettings.WSAImageTypePlayerSettings.WSAImageScale을 참조하십시오.

애플리케이션의 스토어 설명 페이지에 표시되는 이미지를 지정하려면 Store Logo 섹션을 펼칩니다. 최대 8가지의 해상도를 추가할 수 있습니다.

타일

다음을 설정하여 Microsoft 스토어 타일이 일반적으로 표시되는 모양을 커스터마이즈할 수 있습니다.

프로퍼티 설명
Short name 앱의 약칭을 설정합니다.
Show name on Medium Tile, Large Tile 또는 Wide Tile에 이름을 표시할 각 아이콘이미지를 나타냅니다.
Foreground text 앱 타일에 Light 또는 Dark 텍스트를 사용할 것인지를 선택합니다.
Background color 배경에 사용할 컬러를 지정합니다.
Default Size 타일의 기본 크기로 사용할 크기를 선택합니다.
Not Set 기본 크기를 사용하지 않습니다.
Medium 중간 크기를 사용합니다.
Wide 폭이 넓은 크기를 사용합니다.

Unity는 이러한 옵션을 Package.appxmanifest 파일에 바로 복사합니다.

타일 및 로고

이 설정을 사용하여 Microsoft 스토어에서 타일이 표시할 이미지를 지정합니다.

프로퍼티 설명
Square 44x44 Logo 앱 타일에서 사용할 44x44 크기의 로고 이미지를 설정합니다. 최대 10가지의 해상도를 설정할 수 있습니다.
Square 71x71 Logo 앱 타일에서 사용할 71x71 크기의 로고 이미지를 설정합니다. 최대 5가지의 해상도를 설정할 수 있습니다.
Square 150x150 Logo 앱 타일에서 사용할 150x150 크기의 로고 이미지를 설정합니다. 최대 5가지의 해상도를 설정할 수 있습니다.
Square 310x310 Logo 앱 타일에서 사용할 310x310 크기의 로고 이미지를 설정합니다. 최대 5가지의 해상도를 설정할 수 있습니다.
Wide 310x150 Logo 앱 타일에서 사용할 310x150 크기의 로고 이미지를 설정합니다. 최대 5가지의 해상도를 설정할 수 있습니다.

해상도(Resolution) 및 프리젠테이션(Presentation)

Resolution and Presentation 섹션에서 화면이 표시되는 모양에 대해 다음을 커스터마이즈할 수 있습니다.

UWP용 해상도와 프레젠테이션 설정
UWP용 해상도와 프레젠테이션 설정
프로퍼티 설명
Default is Full Screen 앱 창을 전체 화면을 덮는 전체 화면 기본 디스플레이 해상도로 설정합니다.이 모드를 테두리 없는 전체 화면이라고도 합니다.Unity는 스크립트에서 설정한 해상도 또는 설정된 해상도가 없는 경우 기본 디스플레이 해상도로 앱 콘텐츠를 렌더링하고 창을 채우도록 크기를 조정합니다.확대/축소 시 Unity는 콘텐츠가 스트레치되는 것을 방지하기 위해 렌더링된 출력에 검은색 막대를 추가하여 디스플레이 종횡비에 맞춥니다.이 프로세스를 레터박싱이라고 부릅니다.
Run In Background 앱이 포커스를 잃는 경우 게임을 계속 실행할지(일시 중지할지) 여부를 표시합니다.
Allow Fullscreen Switch 기본 OS 전체 화면 키를 누를 때 전체 화면 모드와 창 모드 간에 전환을 허용할지 여부를 나타냅니다.
Transparent Swapchain 스왑체인의 알파 모드를 DXGI_ALPHA_MODE_PREMULTIPLIED로 설정할지 여부를 나타냅니다.

이 설정은 XAML 빌드 유형을 사용하는 UWP 프로젝트에만 사용됩니다.이 설정을 활성화하면 애플리케이션에서 다른 XAML 콘텐츠와 함께 Unity 콘텐츠를 구성할 수 있습니다.

자세한 내용은 PlayerSettings.WSA.transparentSwapchain을 참조하십시오.

방향

프로퍼티 설명
Default Orientation 기기 화면 내 애플리케이션 창의 방향을 지정합니다.

참고: Unity는 이 설정에 지정한 값을 Android, iOS, UWP 간에 공유합니다.
Portrait 애플리케이션의 하단이 화면 하단에 맞추어 정렬되는 세로 방향입니다.
Portrait Upside Down 애플리케이션의 하단이 화면 상단에 맞추어 정렬되는 세로 방향입니다.
Landscape Right 애플리케이션의 오른쪽이 화면 상단에 맞추어 정렬되는 가로 방향입니다.
Landscape Left 애플리케이션의 왼쪽이 화면 상단에 맞추어 정렬되는 가로 방향입니다.
Auto Rotation 화면이 Allowed Orientations for Auto Rotation 섹션에 지정한 모든 방향으로 회전할 수 있습니다.

자동 회전 허용 방향

Allowed Orientations for Auto Rotation 섹션을 사용하여 Default OrientationAuto Rotation으로 설정할 때 애플리케이션이 지원하는 방향을 지정할 수 있습니다. 예를 들어 애플리케이션을 가로 방향으로 고정하되 사용자가 가로 왼쪽과 가로 오른쪽 사이에서 변경할 수 있도록 하는 경우에 유용합니다.

참고: 이 섹션은 Orientation 섹션의 Default OrientationAuto Rotation으로 설정한 경우에만 표시됩니다.

프로퍼티 설명
Portrait 애플리케이션의 하단이 화면 하단에 맞추어 정렬되도록 세로 방향으로 설정됩니다.
Portrait Upside Down 애플리케이션의 하단이 화면 상단에 맞추어 정렬되도록 세로 방향으로 설정됩니다.
Landscape Right 애플리케이션의 오른쪽이 화면 상단에 맞추어 정렬되도록 가로 방향으로 설정됩니다.
Landscape Left 애플리케이션의 왼쪽이 화면 상단에 맞추어 정렬되도록 가로 방향으로 설정됩니다.

스플래시 이미지(Splash Image)

일반적인 스플래시 화면 설정 위의 Player Settings 설정을 사용하면 UWP를 위한 스플래시 이미지를 지정할 수 있습니다.

UWP용 스플래시 설정
UWP용 스플래시 설정

가상 현실 디스플레이에 표시될 커스텀 스플래시 이미지를 선택하려면 Virtual Reality Splash Image 프로퍼티를 사용하십시오.

일반적인 스플래시 화면 설정 아래에 다음과 같이 몇 가지 섹션이 더 있습니다.

Windows

앱의 스플래시 화면에서 사용할 전경 이미지를 설정합니다.최대 7가지 해상도를 추가할 수 있습니다.

UWP용 Windows 스플래시 설정
UWP용 Windows 스플래시 설정

Windows Holographic

다음 설정을 사용하여 Mixed Reality 애플리케이션의 홀로그래픽 스플래시 이미지를 커스터마이즈합니다.

UWP용 Windows Holographic 스플래시 설정
UWP용 Windows Holographic 스플래시 설정

시작 시 표시할 Holographic Splash Image를 설정합니다. 이 이미지는 5초 동안 또는 앱이 로딩을 완료할 때까지 표시됩니다.

추적 손실

홀로그램이 올바른 위치를 유지하게 하려면 혼합 현실 헤드셋이 환경에서 월드 고정 좌표 시스템을 빌드해야 합니다.추적 손실은 월드에서 헤드셋이 현재 위치를 추적하지 못할 때 발생합니다(스스로 위치를 찾을 수 없음).이로 인해 공간 시스템(공간 매핑, 공간 앵커, 공간 단계)이 고장납니다.

이러한 현상이 발생하면 Unity에서 홀로그램 렌더링이 중단되고, 게임이 일시중지되며 알림이 표시됩니다. On Tracking Loss Pause and Show Image 프로퍼티를 활성화한 다음 Tracking Loss Image 프로퍼티로 표시될 이미지를 선택하여 알림에 나타나는 이미지를 커스터마이즈할 수 있습니다.

자세한 내용은 Unity 권장 설정을 참조하십시오.

배경색 덮어쓰기

애플리케이션이 초기화되는 동안 UWP에는 Made with Unity 스플래시 화면 앞에 스플래시 화면이 표시됩니다.시각적으로 더 매력적이므로 UWP 스플래시 화면 배경을 스플래시 화면 이미지와 일치시키는 것이 가장 좋습니다.기본 컬러는 검은색입니다.

UWP 특정 스플래시 화면 배경 컬러를 덮어쓰려면 다음 단계를 수행하십시오.

  1. Player Settings > Splash Screen으로 이동하고 Overwrite Background Color를 활성화합니다.
  2. Background Color 선택자에서 원하는 컬러를 선택합니다.

기본 배경 컬러를 덮어쓰면 Unity는 애플리케이션 매니페스트의 컬러 값을 변경합니다.XAML 애플리케이션 타입을 사용하는 경우 Unity는 초기 XAML 페이지에서 컬러 값도 설정합니다.

UWP용 스플래시 설정 배경색 덮어쓰기
UWP용 스플래시 설정 배경색 덮어쓰기

기타 설정

이 섹션에서는 다음 그룹으로 분류된 다양한 옵션을 커스터마이즈할 수 있습니다.

렌더링(Rendering)

다음 설정을 사용하여 Unity가 UWP를 위한 게임을 렌더링하는 방법을 커스터마이즈합니다.

UWP용 렌더링 설정
UWP용 렌더링 설정
프로퍼티 설명
Color Space 렌더링에 사용할 색 공간을 선택합니다. 자세한 내용은 리니어 렌더링 개요를 참조하십시오.
Gamma 감마 색 공간은 일반적으로 프레임 버퍼 포맷에 대해 채널당 8비트로 제한되는 구형 하드웨어의 조명을 계산하는 데 사용됩니다. 이제 모니터는 디지털 방식이지만 여전히 감마로 인코딩된 신호를 입력으로 사용합니다.
Linear 리니어 색 공간 렌더링은 더 정밀한 결과를 제공합니다. 리니어 색 공간에서 작업하도록 선택하면 에디터는 기본적으로 sRGB 샘플링을 사용합니다. 텍스처가 리니어 색 공간에 있는 경우, 리니어 색 공간에서 작업하고 각 텍스처에 대해 sRGB 샘플링을 비활성화해야 합니다.
Auto Graphics API 그래픽스 API를 수동으로 선택하고 순서를 변경할지 여부를 표시합니다. 기본적으로 이 옵션은 활성화되어 있으며 Unity는 Direct3D11을 사용합니다.
Static Batching 정적 배칭을 사용하려면 이 옵션을 활성화합니다.
Dynamic Batching 이 옵션을 활성화하여 동적 배칭을 사용합니다(기본적으로 활성화되어 있음).

참고: 동적 배칭은 스크립터블 렌더 파이프라인이 활성 상태인 경우 효과가 없으므로, 이 설정은 Scriptable Render Pipeline Asset Graphics 설정이 비어 있을 때만 표시됩니다.
Sprite Batching Threshold 배칭 시 사용되는 최대 버텍스 임계값을 제어합니다.
GPU Compute Skinning DX11/DX12/ES3 GPU 스키닝을 사용할지 여부를 표시합니다.
Graphics Jobs 그래픽스 작업(렌더 루프)을 다른 CPU 코어에서 실행되는 워커 스레드로 오프로드합니다. 이 옵션은 병목 현상이 발생할 수 있는 메인 스레드의 Camera.Render에 소요되는 시간을 줄여 줍니다.
Lightmap Encoding 라이트맵의 인코딩 방식과 압축 형식을 정의합니다.
Low Quality, Normal Quality, High Quality 중에서 선택할 수 있습니다.
HDR Cubemap Encoding HDR 큐브맵의 인코딩 방식과 압축 형식을 정의합니다.
Low Quality, Normal Quality, High Quality 중에서 선택할 수 있습니다. 자세한 내용은 라이트맵: 기술 정보를 참조하십시오.
Lightmap Streaming 라이트맵에 밉맵 스트리밍을 사용하려면 이 옵션을 활성화합니다. Unity는 라이트맵을 생성할 때 이 설정을 모든 라이트맵에 적용합니다.
참고: 이 설정을 사용하려면 Texture Streaming Quality 설정을 활성화해야 합니다.
Streaming Priority 밉맵 스트리밍 시스템의 모든 라이트맵에 대한 우선순위를 설정합니다. Unity는 라이트맵을 생성할 때 이 설정을 모든 라이트맵에 적용합니다.
숫자가 클수록 우선순위가 더 높습니다. 유효값 범위는 –128에서 127까지입니다.
Enable Frame Timing Stats Unity가 CPU/GPU 프레임 타이밍 통계를 수집하도록 합니다. 이 옵션을 다이내믹 해상도 카메라 설정과 함께 사용하여 애플리케이션이 CPU 바운드인지 GPU 바운드인지를 결정합니다.
Use Display In HDR Mode (Windows Only) 게임이 실행되면 자동으로 HDR 모드 출력으로 전환되도록 합니다. 이 옵션은 이 기능을 지원하는 디스플레이에서만 작동합니다. 디스플레이에서 HDR 모드를 지원하지 않는 경우 게임이 표준 모드에서 실행됩니다.
Swap Chain Bit Depth 스왑 체인 버퍼에 대한 각 컬러 채널의 비트 수를 선택합니다. Bit Depth 10 또는 Bit Depth 16을 선택할 수 있습니다. 비트 뎁스를 선택하는 옵션은 HDR 모드를 활성화한 경우에만 사용할 수 있습니다.

비트 뎁스에 대한 자세한 내용은 D3DHDRDisplayBitDepth에 대한 스크립팅 API 페이지를 참조하십시오.
Virtual Texturing 씬에 고해상도 텍스처가 많은 경우 이 옵션을 활성화하면 GPU 메모리 사용량과 텍스처 로딩 시간을 줄일 수 있습니다. 자세한 내용은 가상 텍스처링을 참조하십시오.

참고: 이 설정이 적용되도록 하려면 Unity 에디터를 다시 시작해야 합니다.
Shader precision model 셰이더에 사용되는 샘플러의 기본 정밀도를 제어합니다. 자세한 내용은 셰이더 데이터 타입 및 정밀도를 참조하십시오.
360 Stereo Capture Unity가 양안 360 이미지 및 동영상을 캡처하도록 합니다. 활성화되면 Unity는 360 캡처를 지원하기 위해 추가 셰이더 배리언트를 컴파일합니다(Windows에서만 가능). 활성화되면 enable_360_capture 키워드가 Stereo RenderCubemap 호출 중에 추가됩니다. 이 키워드는 Stereo RenderCubemap 함수 외부에서 트리거되지 않습니다.

자세한 내용은 스테레오 360 이미지 및 동영상 캡처를 참조하십시오.

설정

UWP용 구성 설정
UWP용 구성 설정
프로퍼티 설명
Scripting Backend 스크립팅 백엔드에서 Unity가 프로젝트의 C# 코드를 컴파일 및 실행하는 방법을 결정합니다. 유니버설 Windows 플랫폼의 경우 이 설정은 기본적으로 IL2CPP이며 변경될 수 없습니다.
API Compatibility Level 프로젝트에서 사용할 수 있는 .NET API를 선택합니다. 이 설정은 타사 라이브러리와의 호환성에 영향을 줄 수 있습니다. 그러나 에디터별 코드(에디터 디렉토리 내의 코드 또는 에디터별 어셈블리 정의 내의 코드)에는 영향을 주지 않습니다.

팁: 타사 어셈블리에 문제가 발생하는 경우 아래의 API Compatibility Level 섹션에서 제안해 볼 수 있습니다.
.Net Framework .NET Framework 4 (.NET Standard 2.0 프로파일의 모든 항목과 추가 API 포함)와 호환됩니다. .NET Standard 2.0에 포함되지 않은 API에 액세스하는 라이브러리를 사용하는 경우 이 옵션을 선택하십시오. 크기가 큰 빌드를 생성하며, 일부 플랫폼에서는 추가 API를 사용하지 못할 수 있습니다. 자세한 내용은 추가 클래스 라이브러리 어셈블리 레퍼런스를 참조하십시오.
.Net Standard 2.1 크기가 작은 빌드를 생성하며, 크로스 플랫폼을 완벽하게 지원합니다.
IL2CPP Code Generation Unity가 IL2CPP 코드 생성을 관리하는 방법을 정의합니다.
Faster runtime 런타임 성능에 최적화된 코드를 생성합니다. 이 설정은 기본적으로 활성화되어 있습니다.
Faster (smaller) builds 빌드 크기 및 반복 작업에 최적화된 코드를 생성합니다. 이 설정은 코드를 적게 생성하고 빌드 크기를 줄이지만 특히 일반 코드의 경우 런타임 성능이 저하될 수 있습니다. 변경 사항을 반복할 때와 같이 빌드 시간을 단축하는 것이 중요한 경우 이 옵션을 사용합니다.
C++ Compiler Configuration IL2CPP 생성 코드를 컴파일할 때 사용되는 C++ 컴파일러 설정을 선택합니다.

참고: 생성된 Visual Studio 프로젝트에서 선택되어 있으므로 유니버설 Windows 플랫폼에 대해서는 비활성화됩니다.
Use incremental GC 가비지 컬렉션을 여러 프레임에 걸쳐 분산하는 점진적 가비지 컬렉션을 사용하여 가비지 컬렉션과 관련된 프레임 기간의 스파이크를 줄입니다.자세한 내용은 자동 메모리 관리를 참조하십시오.
Assembly Version Validation Mono가 강력한 이름의 어셈블리 타입을 확인하는지 여부를 나타냅니다.
Allow downloads over HTTP HTTP를 통한 콘텐츠 다운로드를 허용할지 여부를 나타냅니다.기본 옵션은 Not allowed로 설정되어 있는데, 이는 권장 프로토콜이 더 안전한 HTTPS이기 때문입니다.
Not Allowed HTTP를 통한 다운로드를 허용하지 않습니다.
Allowed in Development Builds 개발 빌드에서는 HTTP를 통한 다운로드만 허용합니다.
Always Allowed 개발 및 릴리스 빌드에서 HTTP를 통한 다운로드를 허용합니다.
Accelerometer Frequency 가속 센서 샘플링 빈도를 정의합니다. Disabled를 선택하면 샘플을 만들지 않습니다. 그렇지 않은 경우 15Hz, 30Hz, 60Hz, 100Hz 주파수 중에서 선택할 수 있습니다.
Active Input Handling 사용자의 입력을 처리하는 방식을 선택합니다.
Input Manager (Old) 기존의 입력 설정을 사용합니다.
Input System Package (New) 입력 시스템을 사용합니다. 이 옵션을 사용하려면 InputSystem 패키지를 설치해야 합니다.
Both 두 시스템을 모두 사용합니다.

API 호환성 레벨

모든 타겟에 대해 Mono API 호환성 레벨을 선택할 수 있습니다.가끔 타사 .NET 라이브러리가 .NET 호환성 레벨을 벗어난 기능을 사용하는 경우가 있습니다.이러한 경우 발생하는 상황과 최선의 해결책을 알아보려면 다음 권장 사항을 따르십시오.

  1. Windows용 ILSpy를 설치합니다.
  2. 문제가 있는 API 호환성 레벨의 .NET 어셈블리를 ILSpy로 드래그합니다.이것은 Data/MonoBleedingEdge/lib/mono/YOURSUBSET/` 아래에 있습니다.
  3. 서드파티 어셈블리를 드래그합니다.
  4. 서드파티 어셈블리를 마우스 오른쪽 버튼으로 클릭하고 Analyze를 선택합니다.
  5. 분석 보고서에서 Depends on 섹션을 살펴봅니다.타사 어셈블리가 의존하고 있지만 선택한 .NET 호환성 레벨에서 사용할 수 없는 항목은 빨간색으로 하이라이트됩니다.

스크립트 컴파일

UWP용 스크립트 컴파일 설정
UWP용 스크립트 컴파일 설정
프로퍼티 설명
Scripting Define Symbols 커스텀 컴파일 플래그를 설정합니다.

자세한 내용은 플랫폼 종속 컴파일을 참조하십시오.
Additional Compiler Arguments 이 리스트에 항목을 추가하여 Roslyn 컴파일러에 추가 인자를 전달합니다.각 추가 인자에 대해 새 항목을 하나씩 사용합니다.
새 항목을 생성하려면 Add(+)를 클릭합니다.항목을 제거하려면 Remove(-)를 클립합니다.

원하는 인자를 모두 추가하면 Apply를 클릭하여 향후 컴파일에 추가 인자를 포함합니다.Revert를 클릭하면 이 리스트를 가장 최근 적용된 상태로 재설정할 수 있습니다.
Suppress Common Warnings C# 경고 CS0169CS0649 표시 여부를 나타냅니다.
Allow ‘unsafe’ Code 사전 정의된 어셈블리(예: Assembly-CSharp.dll)에서 ‘안전하지 않은’ C# 코드 컴파일에 대한 지원을 활성화합니다.
어셈블리 정의 파일(.asmdef)의 경우, .asmdef 파일 하나를 클릭하고 표시되는 인스펙터 창에서 해당 옵션을 활성화합니다.
Use Deterministic Compilation -deterministic C# 플래그를 사용한 컴파일 방지 여부를 나타냅니다. 이 설정을 활성화하면 컴파일된 어셈블리는 컴파일될 때마다 바이트 단위로 동일하게 컴파일됩니다.

자세한 내용은 코드 생성을 제어하는 C# 컴파일러 옵션을 참조하십시오.

최적화(Optimization)

UWP용 최적화 설정

프로퍼티 설명
Prebake Collision Meshes 빌드 시 충돌 데이터를 메시에 추가합니다.
Keep Loaded Shaders Alive 셰이더가 언로드되지 않도록 방지할지 여부를 나타냅니다.

자세한 내용은 셰이더 로딩을 참조하십시오.
Preloaded Assets 시작 시 로드할 플레이어의 에셋 배열을 설정합니다.
새 에셋을 추가하려면 Size 프로퍼티의 값을 늘린 다음, 표시되는 새 Element 상자에서 로드할 에셋에 대한 레퍼런스를 설정합니다.
Managed Stripping Level Unity가 사용되지 않는 관리되는 (C#) 코드를 얼마나 적극적으로 제거할지 선택합니다. Unity가 앱을 빌드하면 Unity Linker 프로세스는 프로젝트가 사용하는 관리되는 DLL에서 사용되지 않은 코드를 제거할 수 있습니다. 코드를 제거하면 결과 실행 파일의 크기가 작아질 수 있지만, 사용 중인 코드가 제거될 수도 있습니다.

이러한 옵션과 IL2CPP를 사용한 바이트코드 제거에 대한 자세한 내용은 ManagedStrippingLevel을 참조하십시오.
Minimal 클래스 라이브러리, UnityEngine, Windows Runtime 어셈블리를 제거하고 모든 기타 어셈블리를 복사하려면 이 옵션을 사용하십시오.
Low 연결할 수 없는 관리되는 코드를 제거하여 빌드 크기와 Mono/IL2CPP 빌드 시간을 줄입니다.
Medium UnityLinker를 실행하여 Low로 달성할 수 있는 수준 이상으로 코드 크기를 줄입니다. 커스텀 link.xml 파일 지원이 필요할 수 있으며, 일부 리플렉션 코드 경로가 동일하게 작동하지 않을 수 있습니다.
High UnityLinker가 최대한 많은 코드를 제거합니다. 이렇게 하면 코드 크기가 Medium으로 달성할 수 있는 수준 이상으로 줄어들지만 일부 메서드의 관리되는 코드 디버깅이 더 이상 작동하지 않을 수 있습니다. 커스텀 link.xml 파일 지원이 필요할 수 있으며, 일부 리플렉션 코드 경로가 동일하게 작동하지 않을 수 있습니다.
Vertex Compression 채널당 버텍스 압축을 설정합니다. 이는 프로젝트의 모든 메시에 영향을 줍니다.
일반적으로 버텍스 압축은 메모리의 메시 데이터 크기를 줄이고, 파일 크기를 줄이고, GPU 성능을 향상시키는 데 사용됩니다.

버텍스 압축 설정 방법과 이 설정의 제한에 대한 자세한 내용은 메시 데이터 압축을 참조하십시오.
Optimize Mesh Data 사용되지 않는 버텍스 속성을 빌드에 사용된 메시에서 제거하려면 이 옵션을 활성화하십시오. 이 옵션은 메시에 있는 데이터 양을 줄여서 빌드 크기, 로딩 시간, 런타임 메모리 사용량을 줄이는 데 도움이 될 수 있습니다.

경고: 이 설정을 활성화한 경우 런타임 시 머티리얼이나 셰이더 설정을 변경하지 마십시오.

자세한 내용은 PlayerSettings.stripUnusedMeshComponents를 참조하십시오.
Strict shader variant matching 셰이더 배리언트가 누락된 경우 에디터는 콘솔에 오류 메시지를 표시하면서 밝은 분홍색의 오류 셰이더를 사용합니다.
Texture MipMap Stripping 모든 플랫폼에 대해 밉맵 스트리핑을 활성화합니다. 빌드 시 사용되지 않는 밉맵을 텍스처에서 제거합니다.
Unity는 밉맵의 값을 현재 플랫폼에 대한 품질 설정과 비교하여 사용되지 않는 밉맵을 판단합니다. 밉맵 값이 현재 플랫폼에 대한 모든 품질 설정 값에서 벗어나는 경우, Unity는 빌드 시 이러한 밉맵을 빌드에서 제거합니다. QualitySettings.masterTextureLimit가 제거된 밉맵 값으로 설정된 경우, Unity는 제거되지 않은 밉맵 값에 최대한 가깝게 값을 설정합니다.

스택 추적

특정 컨텍스트에서 허용할 스택 추적 로깅 타입을 선택합니다.

UWP용 스택 추적 설정
UWP용 스택 추적 설정
  • 필요한 로깅 유형에 따라 각 로그 유형(Error, Assert, Warning, Log, Exception)에 해당하는 옵션을 활성화하여 선호하는 스택 추적 방법을 선택합니다.예시:
    • ScriptOnly:스크립트를 실행할 때만 로그합니다.
    • Full:항상 로그합니다.
    • None:어떤 로그도 기록하지 않습니다.

자세한 내용은 스택 추적 로깅을 참조하십시오.

레거시

SkinnedMeshRenderers의 블렌드 셰이프 가중치 범위를 고정하려면 Clamp BlendShapes (Deprecated)를 활성화합니다.

UWP용 레거시 설정
UWP용 레거시 설정

퍼블리싱 설정(Publishing Settings)

이 설정을 사용하여 UWP 앱 빌드를 커스터마이즈하십시오.이러한 옵션은 다음 그룹으로 구성됩니다.

Unity는 Visual Studio 솔루션을 처음 만들 때 이러한 설정을 Package.appxmanifest 파일에 저장합니다.

참고:기존 프로젝트 위에 프로젝트를 빌드하는 경우, Unity는 Package.appxmanifest 파일이 이미 존재한다면 덮어쓰지 않습니다.즉, Player 설정을 변경하는 경우 Package.appxmanifest를 확인해야 합니다.Package.appxmanifest를 다시 생성하려면 해당 파일을 삭제하고 Unity에서 해당 프로젝트를 다시 빌드합니다.

자세한 내용은 [앱 패키지 매니페스트]에 대한 Microsoft의 문서(http://msdn.microsoft.com/en-us/library/windows/apps/br211474.aspx)를 참조하십시오.

플레이어 설정의 지원되는 방향 역시 해당 매니페스트(Visual Studio 솔루션의 Package.appxmanifest 파일)에 채워집니다.UWP 앱에서는 매니페스트에 지정한 내용과 관계없이 Unity가 Player 설정에서 사용한 방향으로 방향을 초기화합니다.그 이유는 데스크톱 및 태블릿 컴퓨터에서는 Windows 자체에서 이러한 설정을 무시하기 때문입니다.

팁: Unity 스크립팅 API를 사용하여 언제든지 지원되는 방향을 변경할 수 있습니다.

패키지

UWP용 패키지 설정
UWP용 패키지 설정
프로퍼티 설명
패키지 이름 시스템에서 패키지를 식별할 이름을 입력합니다. 이름은 고유해야 합니다.
Package display name 플레이어 설정 상단에서 설정하는 Product Name 값이 여기에 나타납니다.Microsoft 스토어에 표시되는 앱의 이름입니다.
Version Major.Minor.Build.Revision 스트링을 사용하여 4채널 표기에 패키지 버전을 입력합니다.
Publisher display name 플레이어 설정 상단에서 설정하는 Company Name 값이 여기에 나타납니다.이것은 퍼블리셔의 사용자 친화적인 이름입니다.
Streaming Install 씬을 위한 스트리밍 가능한 에셋을 포함한 AppxContentGroupMap.xml 매니페스트 파일을 만들려면 이 옵션을 활성화합니다. 씬 에셋을 기본적으로 포함하려면 Last required scene index 설정을 사용합니다. 씬 인덱스가 Last required scene index 보다 상위에 있는 씬의 에셋은 매니페스트 파일에서 스트리밍 가능한 에셋으로 지정됩니다.
Last required scene index Build Settings 창Scenes In Build 목록에서 해당 목록의 마지막 씬에 해당하는 인덱스 번호를 입력하여 게임 빌드에 반드시 있어야 하는 씬을 입력합니다.애플리케이션을 시작하려면 Unity에 지정된 인덱스 이하의 씬 인덱스가 필요합니다.목록에 있는 모든 파일을 요구하려면 목록에서 마지막 씬의 인덱스를 사용하십시오.
씬 인덱스가 더 큰 씬에는 인덱스가 더 작은 씬에 대한 공유 에셋이 포함되어야 합니다.Build Settings 다이얼로그에서 씬 순서는 애플리케이션에서 필요한 에셋을 찾을 때 중요할 수 있습니다.

참고:기본적으로 Streaming Install 옵션은 비활성화되어 있으므로 이 설정은 사용할 수 없습니다.이 프로퍼티를 편집할 수 있게 하려면 먼저 Streaming Install 옵션을 활성화하십시오.

인증서

모든 UWP 앱은 개발자가 식별된 인증서가 있어야 합니다.

인증서 생성 전
인증서 생성 전

Select를 클릭하여 로컬 컴퓨터에서 해당 인증서 파일(.pfx)을 선택합니다.선택한 파일의 이름이 Select에 표시됩니다.

인증서 파일이 없다면 Unity에서 다음과 같이 파일을 만들 수 있습니다.

  1. Create를 클릭합니다.그러면 Create Test Certificate for Microsoft Store 다이얼로그 창이 나타납니다.

  2. Publisher 텍스트 상자에 패키지 퍼블리셔의 이름을 입력합니다.

  3. 비밀번호로 인증서를 보호할 수도 있지만 이는 선택 사항입니다.비밀번호 입력란은 비워 두는 것이 좋습니다.

  4. Create를 클릭합니다.

    창이 닫히고 Certificate 섹션에 PublisherIssued by 값으로 입력한 이름이 표시됩니다. Expiration date는 인증서를 만든 날짜로부터 1년 후로 설정됩니다.

인증서 생성 후
인증서 생성 후

Application UI

Unity는 이러한 옵션을 Package.appxmanifest 파일에 바로 복사합니다.

UWP용 애플리케이션 UI 설정
UWP용 애플리케이션 UI 설정

플레이어 설정의 상단에서 설정하는 Display name 값이 섹션에 나타납니다.이것은 앱의 정식 이름입니다.

Description 텍스트 상자에 Microsoft 스토어의 앱 타일에 표시할 텍스트를 입력합니다.기본값은 패키지 표시 이름 값입니다.

파일 및 프로토콜 연결

File Type Associations, File Types, Protocol 섹션의 설정을 통해 Microsoft 스토어 앱을 특정 파일 유형이나 URI 체계의 기본 핸들러로 지정할 수 있습니다.

UWP용 File Type Association 섹션
UWP용 File Type Association 섹션

File Type Associations 섹션의 Name 텍스트 상자에 파일 유형 그룹의 이름을 소문자로만 입력합니다. 파일 그룹의 파일은 표시 이름, 로고, 정보 팁과 편집 플래그가 같습니다. 앱이 업데이트되어도 동일하게 유지할 수 있는 그룹 이름을 선택하십시오.

파일 연결로 설정하는 경우 다음을 수행하십시오.

  1. Add New를 클릭합니다.File Types에 비어 있는 엔트리 값이 나타납니다.여러 파일 타입을 추가할 수 있습니다.
  2. Content Type 텍스트 상자에 특정한 파일 유형의 MIME 콘텐츠 유형을 입력합니다(예: image/jpeg).
  3. File Type 텍스트 상자에 ’.’와 등록할 파일 유형을 입력합니다(예: .jpeg).

URI 체계와의 연결로 설정하는 경우 Name 텍스트 상자에 프로토콜을 입력하십시오.

자세한 내용은 파일 및 URI 연결을 통한 자동 실행(XAML)에 대한 Microsoft 문서를 참조하십시오.

기타

Unity는 이벤트를 구독하여 입력을 수신합니다. Input Source 설정은 어디서(어느 소스에서) 입력을 수신할지 지정합니다. 키보드 입력은 항상 CoreWindow에서 송신되므로, 현재 이 설정은 마우스와 터치 입력에만 적용됩니다.

UWP용 Misc 설정
UWP용 Misc 설정
프로퍼티 설명
Default Language (.vcxproj) 생성된 Visual Studio 프로젝트에서 XML 기본 언어를 설정합니다.지정되지 않으면 ‘en-US’가 사용됩니다.
참고:변경 사항은 초기 파일 생성에만 적용되며 기존 파일에는 변경 사항이 적용되지 않습니다.
Input Source 입력을 받을 소스를 정의합니다.현재 이 기능은 마우스와 터치 입력에만 적용되며, 키보드 입력은 항상 CoreWindow에서 제공되기 때문입니다.
CoreWindow CoreWindow 이벤트를 구독합니다.이것은 기본값입니다.
Independent Input Source 독립 입력 소스를 만들고 입력을 수신합니다.
SwapChainPanel SwapChainPanel 이벤트를 구독합니다.

Capabilities

Capabilities 섹션을 사용하여 앱에서 액세스할 API나 리소스를 활성화합니다. 이러한 리소스는 사진, 음악 또는 카메라나 마이크와 같은 기기일 수 있습니다.

UWP용 Capabilities 설정
UWP용 Capabilities 설정
프로퍼티 설명
EnterpriseAuthentication Windows 도메인 자격 증명은 사용자가 자신의 자격 증명을 사용하여 원격 리소스에 로그인하여 사용자 이름과 비밀번호를 제공한 것과 동일한 역할을 할 수 있도록 합니다.
InternetClient 앱이 인터넷에서 수신되는 데이터를 수신할 수 있도록 허용합니다.서버 역할을 할 수 없습니다.로컬 네트워크에 액세스할 수 없습니다.
InternetClientServer InternetClient와 동일하되, 앱이 수신되는 네트워크 연결을 수신해야 하는 P2P(peer-to-peer) 시나리오도 활성화합니다.
MusicLibrary 사용자의 음악에 액세스하여 앱이 사용자의 상호작용 없이 라이브러리의 모든 파일을 열거하고 액세스할 수 있도록 합니다. 이 기능은 보통 음악 라이브러리 전체를 사용하는 주크박스 앱에서 활용됩니다.
PicturesLibrary 사용자의 사진에 액세스하여 앱이 사용자의 상호작용 없이 라이브러리의 모든 파일을 열거하고 액세스할 수 있도록 합니다. 이 기능은 보통 사진 라이브러리 전체를 사용하는 사진 앱에서 활용됩니다.
PrivateNetworkClientServer 방화벽을 통해 가정 및 직장 네트워크에 대한 인바운드 액세스와 아웃바운드 액세스를 제공합니다. 일반적으로 이 기능은 로컬 영역 네트워크(LAN)를 통해 통신하는 게임 및 다양한 로컬 기기에 걸쳐 데이터를 공유하는 앱에서 사용됩니다.
RemovableStorage USB 키와 외장 하드 드라이브 등 제거 가능한 스토리지의 파일에 액세스합니다.
SharedUserCertificates 앱이 공유 사용자 스토어의 소프트웨어 및 하드웨어 기반 인증서(예: 스마트카드에 저장된 인증서)를 추가하고 액세스할 수 있도록 합니다. 일반적으로 이 기능은 스마트 카드를 이용하여 인증해야 하는 금융 앱이나 기업 앱에서 사용됩니다.
VideosLibrary 앱이 사용자의 비디오에 액세스하여 사용자의 상호작용 없이 라이브러리의 모든 파일을 열거하고 액세스할 수 있도록 합니다. 이 기능은 보통 비디오 라이브러리 전체를 사용하는 영화 재생 앱에서 활용됩니다.
WebCam 빌트인 카메라 또는 외부 웹캠의 비디오 피드에 액세스하여 앱이 사진과 비디오를 캡처할 수 있도록 합니다.
참고:이렇게 하면 비디오 스트림에 대한 액세스 권한만 부여됩니다.오디오 스트림에 대한 액세스 권한도 부여하려면 Microphone 기능을 추가해야 합니다.
Proximity 근접한 여러 대의 기기가 상호 통신할 수 있도록 합니다. 일반적으로 이 기능은 캐주얼 멀티플레이어 게임 및 정보를 교환하는 앱에서 사용됩니다. 기기가 Bluetooth, Wi-Fi와 인터넷 중 최상의 연결을 제공하는 커뮤니케이션 기술의 사용을 시도합니다.
Microphone 마이크의 오디오 피드에 액세스하여 앱이 연결된 마이크의 오디오를 녹음할 수 있도록 합니다.
위치 PC의 GPS 센서와 같은 전용 하드웨어에서 검색해서 가져오거나 가용 네트워크 정보에서 파생된 위치 기능에 액세스합니다.
HumanInterfaceDevice 휴먼 인터페이스 기기 API에 대한 액세스를 활성화합니다.자세한 내용은 HID용 기기 기능 지정 방법을 참조하십시오.
AllJoyn 네트워크에서 AllJoyn이 활성화된 앱과 기기의 상호 감지 및 상호작용이 가능하게 합니다.
BlockedChatMessages 앱이 Spam Filter 앱에 의해 차단된 SMS 및 MMS 메시지를 읽을 수 있도록 합니다.
Chat 앱이 모든 SMS 및 MMS 메시지를 읽고 쓸 수 있도록 합니다.
CodeGeneration 앱이 JIT 기능을 제공하는 다음 함수에 액세스할 수 있도록 합니다.
VirtualProtectFromApp
CreateFileMappingFromApp
OpenFileMappingFromApp
MapViewOfFileFromApp
Objects3D 앱이 3D 오브젝트 파일에 프로그래밍 방식으로 액세스할 수 있도록 합니다. 일반적으로 이 기능은 3D 오브젝트 라이브러리 전체에 대한 액세스가 필요한 3D 앱과 게임에서 사용됩니다.
PhoneCall 앱이 기기의 모든 전화 라인에 액세스하여 다음 함수를 수행할 수 있도록 합니다.
전화 라인에 통화를 걸고 사용자에게 요청하지 않고도 시스템 다이얼러를 표시합니다.
라인 관련 메타데이터에 액세스합니다.
라인 관련 트리거에 액세스합니다.
사용자가 선택한 스팸 필터 앱이 차단 목록과 통화 출처 정보를 설정 및 확인할 수 있도록 합니다.
UserAccountInformation 사용자의 이름과 사진에 액세스합니다.
VoipCall 앱이 Windows.ApplicationModel.Calls 네임스페이스에서 VOIP 호출 API에 액세스할 수 있도록 합니다.
Bluetooth 앱이 Generic Attribute(GATT)나 Classic Basic Rate(RFCOMM) 프로토콜을 통해 기존에 페어링된 Bluetooth 기기와 통신할 수 있도록 합니다.
SpatialPerception 공간 매핑 데이터에 프로그래밍 방식으로 액세스하여 사용자 근처에 있는 공간의 애플리케이션 지정 영역 내 표면에 대한 정보를 혼합 현실 앱에 제공합니다.혼합 현실 앱이 사용자의 머리 포즈를 기반으로 홀로그램 렌더링을 수행하는 데는 이 기능이 필요하지 않으므로 앱에서 이러한 표면 메시를 명시적으로 사용할 경우에만 spatialPerception 기능을 선언하십시오.
InputInjectionBrokered 앱이 HID, 터치, 펜, 키보드나 마우스 등 다양한 입력 형식을 프로그래밍 방식으로 시스템에 추가할 수 있도록 합니다. 일반적으로 이 기능은 시스템을 제어할 수 있는 협업 앱에서 사용됩니다.
Appointments 사용자의 일정 스토어에 액세스합니다. 이 기능은 동기화된 네트워크 계정 및 일정 스토어에 작성하는 다른 앱에 대한 읽기 액세스를 허용합니다. 앱은 이 기능을 사용하여 새로운 캘린더를 생성하고, 만든 캘린더에 일정을 작성할 수 있습니다.
BackgroundMediaPlayback MediaPlayer와 같은 미디어별 API와 AudioGraph 클래스의 동작을 변경하여 앱이 백그라운드에서 작동하는 동안 미디어 재생을 허용합니다. 활성화된 모든 오디오 스트림이 더 이상 음소거되지 않되, 앱이 백그라운드에서 전환하더라도 계속해서 들리는 상태로 유지됩니다. 또한 재생 중에는 앱 수명이 자동으로 연장됩니다.
Contacts 다양한 컨택트 스토어의 컨택트를 집계한 뷰에 액세스합니다. 앱은 이 기능을 통해 여러 네트워크와 로컬 컨택트 스토어로부터 동기화된 컨택트에 제한적으로 액세스(네트워크 허용 규칙이 적용됨)할 수 있습니다.
LowLevelDevices 일정한 수의 추가 요건이 충족되면 앱에 커스텀 기기에 대한 액세스 권한을 허용합니다.
OfflineMapsManagement 앱에 오프라인 맵에 대한 액세스 권한을 허용합니다.
PhoneCallHistoryPublic 앱이 기기의 셀룰러 및 일부 VOIP 호출 이력 정보를 읽을 수 있도록 합니다. 또한 앱이 VOIP 호출 이력 엔트리를 작성할 수 있도록 합니다.
PointOfService Windows.Devices.PointOfService 네임스페이스에서 API에 대한 액세스 권한을 허용합니다. 이 네임스페이스는 앱이 POS 바코드 스캐너와 마그네틱 선 리더에 액세스할 수 있게 하며, UWP 앱에서 다양한 제조사의 POS 기기에 액세스할 수 있는 공급업체에 구애 받지 않는 인터페이스를 제공합니다.
RecordedCallsFolder 앱에 기록된 호출 폴더에 대한 액세스 권한을 허용합니다.
RemoteSystem 앱에 사용자의 Microsoft 계정과 연결된 기기 목록에 대한 액세스 권한을 허용합니다. 여러 기기에 걸쳐 작동을 수행하려면 기기 목록에 대한 액세스 권한이 필요합니다.
SystemManagement 앱에 종료나 재부팅, 로케일과 시간대 등의 기본적인 시스템 관리 권한을 허용합니다.
UserDataTasks 앱에 현재의 작업 설정 상태에 대한 액세스 권한을 허용합니다.
UserNotificationListener 앱에 현재의 알림 설정 상태에 대한 액세스 권한을 허용합니다.
GazeInput 호환되는 시선 추적 기기가 연결되면 앱이 사용자가 어디를 보고 있는지 감지할 수 있습니다.

자세한 내용은 앱 기능 선언을 참조하십시오.

Unity는 이러한 옵션을 Package.appxmanifest 파일에 바로 복사합니다.

참고:이전 패키지 위에 게임을 빌드할 경우 Package.appxmanifest 덮어쓰기가 진행되지 않습니다.

지원되는 기기 패밀리

기기 제품군은 기기 클래스 전반의 API, 시스템 특성 및 동작을 식별합니다.또한 스토어에서 해당 앱을 설치할 수 있는 기기 세트도 결정합니다.자세한 내용은 Microsoft의 기기 제품군 개요를 참조하십시오.

활성화된 옵션이 없으면 모든 기기 제품군에서 앱을 사용할 수 있도록 Windows.Universal이 기본값으로 사용됩니다.에디터가 아닌 PlayerSettings.WSATargetFamily의 API 내에서 이를 설정할 수도 있습니다.

참고:이러한 설정은 새 UWP Visual Studio 솔루션을 생성할 때만 사용됩니다.이러한 설정을 변경해도 기존 폴더에 UWP를 다시 빌드하는 경우에는 영향을 미치지 않습니다.

UWP용으로 지원되는 기기 제품군 설정
UWP용으로 지원되는 기기 제품군 설정
프로퍼티 설명
데스크톱 애플리케이션이 데스크톱 기기 제품군을 지원하는지 여부를 나타냅니다.
Mobile 애플리케이션이 모바일 디바이스 제품군을 지원하는지 여부를 나타냅니다.
Holographic 애플리케이션이 HoloLens(독립형 홀로그램 컴퓨터) 기기 제품군을 지원하는지 여부를 나타냅니다.이것은 혼합 현실 앱에 사용됩니다.
Team 애플리케이션이 팀 기기 제품군을 지원하는지 여부를 나타냅니다.이것은 일반적으로 Microsoft Surface Hub 기기에 사용됩니다.
IoT 애플리케이션이 IoT 기기 제품군을 지원하는지 여부를 나타냅니다.

참고:현재 IoT를 대상으로 하는 앱은 앱 스토어에서 유효하지 않으며 개발 목적으로만 사용해야 합니다.
IoTHeadless 애플리케이션이 IoTHeadless 기기 제품군을 지원하는지 여부를 나타냅니다.

참고:현재 IoTHeadless를 대상으로 하는 앱은 앱 스토어에서 유효하지 않으며 개발 목적으로만 사용해야 합니다.

자세한 내용은 기기 제품군 유효성을 참조하십시오.


PlayerSettingsWSA

UWP용 환경 설정
유니버설 Windows 플랫폼용 개발