Version: 2018.1
유니버설 Windows 플랫폼: C# 스크립트의 WinRT API
스크립팅 백엔드

유니버설 Windows 플랫폼 플레이어 설정(Universal Windows Platform Player Settings)

이 페이지에서는 유니버설 Windows 플랫폼에만 해당되는 Player Settings 에 대해 자세하게 설명합니다. 플레이어 설정 문서를 참조하십시오.

대부분의 설정은 Visual Studio 솔루션을 처음 만들 때 Package.appxmanifest 파일에 전송됩니다.

참고: 기존 프로젝트를 토대로 프로젝트를 빌드하면 Unity 에디터가 이미 있는 Package.appxmanifest 파일을 덮어쓰지 않습니다. 즉, 플레이어 설정에서 무언가를 변경하면 Package.appxmanifest 파일을 확인해야 합니다. Package.appxmanifest 파일을 다시 생성하려면, 이 파일을 삭제한 후 Unity 에디터에서 프로젝트를 다시 빌드하십시오.

자세하게 알아보려면 앱 패키지 매니페스트에 대한 Microsoft 문서를 참조하십시오.

Packaging, Application UI, Tile, Splash screen, Capabilities 설정은 Package.appxmanifest 파일의 설정으로 직접 전송됩니다.

플레이어 설정의 지원되는 방향도 매니페스트(Visual Studio 솔루션의 Package.appxmanifest 파일)에 입력됩니다. 유니버설 Windows 앱에서 Unity 에디터는 매니페스트에 설정되어 있는 방향과 관계없이 플레이어 설정에 설정되어 있는 방향을 사용합니다. Windows 자체가 태블릿과 데스크톱 컴퓨터에서 해당 설정을 무시하기 때문입니다. Unity 스크립팅 API를 사용하여 언제든지 지원되는 방향을 변경할 수 있습니다.

인증서

모든 유니버설 Windows 앱에는 개발자를 식별할 수 있는 인증서가 필요합니다. 인증서를 제공하지 않는 경우 Unity 에디터가 기본 인증서를 만듭니다.

컴파일

아시다시피 Unity 에디터는 스크립트 파일을 컴파일할 때 Mono를 사용하며, 사용자는 .NET 3.5에 있는 API를 사용할 수 있습니다. 컴파일 오버라이드 덕분에 C# 파일에서 유니버설 Windows 플랫폼용 .NET(.NET Core라고도 함)을 사용할 수 있고, 여기에서 제공하는 API도 사용할 수 있습니다.

컴파일 오버라이드 설정

  • None - Mono 컴파일러를 사용하여 C# 파일을 컴파일합니다.
  • Use .Net Core - Microsoft 컴파일러와 .NET Core를 사용하여 C# 파일을 컴파일합니다. Windows 런타임 API를 사용할 수 있지만, JS 언어에서는 C# 파일에서 구현된 클래스에 접근할 수 없습니다. 참고: Windows 런타임의 API를 사용하는 경우 유니버설 Windows 플랫폼에 빌드할 때만 API를 사용할 수 있고 Unity 에디터에서는 사용할 수 없기 때문에 코드를 ENABLE_WINMD_SUPPORT define으로 래핑하는 것이 좋습니다.
  • Use .Net Core Partially - Plugins, Standard Assets, Pro Standard Assets 폴더에 있지 않은 C# 파일은 Microsoft 컴파일러와 .NET Core를 사용하여 컴파일됩니다. 기타 모든 C# 파일은 Mono 컴파일러를 사용하여 컴파일됩니다. C#으로 구현된 클래스는 JS 언어에서 액세스할 수 있다는 장점이 있습니다. 참고: .NET Core API를 Unity 에디터에서 테스트할 수 없습니다. Unity 에디터는 .NET Core에 액세스할 수 없기 때문입니다. 따라서 유니버설 Windows 앱을 실행할 때만 API를 테스트할 수 있습니다.

참고: JS 스크립트에서는 .NET Core API를 사용할 수 없습니다.

다음은 .NET Core API를 스크립트에서 사용하는 방법을 보여주는 간단한 예제입니다.

string GetTemporaryFolder()
{
#if ENABLE_WINMD_SUPPORT
    return Windows.Storage.ApplicationData.Current.TemporaryFolder.Path;
#else
    return "LocalFolder";
#endif
}

기타

처리되지 않은 플러그인(Unprocessed Plugins)은 Unity의 사전 프로세싱 도구(SerializationWeaver, AssemblyPreprocessor, rrw 등)에서 무시된 플러그인의 목록을 포함합니다. 플러그인을 사전 프로세싱하는 데 실패했다는 오류 메시지가 Unity 에디터에서 표시되지 않는 한, 일반적으로 목록을 수정할 필요가 없습니다.

이 목록에 플러그인을 추가하더라도 Unity 에디터는 직렬화 용도로 사용되는 어셈블리에 추가 IL 코드를 삽입하지 않습니다. 플러그인이 UnityEngine.dll을 참조하지 않는다면 Unity 에디터가 플러그인의 데이터를 직렬화하지 않기 때문에 아무런 문제가 없습니다.

독립 입력 소스

독립 입력 소스(Independent Input Source) 옵션을 사용할 수 있습니다. 기본적으로 입력의 응답성을 높일 수 있으므로 일반적으로 이 옵션을 사용하는 것이 좋습니다.

낮은 지연 속도 프레젠테이션 API 낮은 지연 속도 프레젠테이션 API(Low Latency Presentation API) 옵션을 사용할 수 있습니다. 기본적으로 DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT 플래그가 있는 D3D11 스왑체인을 생성하고(자세한 내용은 여기 참조), 입력 응답 속도가 더 빨라집니다. GPU 드라이버가 오래된 하드웨어에서 이 옵션을 사용하면 게임의 랙이 심해지기 때문에, 이 옵션은 기본적으로 비활성화되어 있습니다. 이 옵션을 활성화하면 게임 성능이 적절한 수준으로 유지되는지 확인하기 위해 게임을 프로파일링해야 합니다.

성능

성능(Capabilities) 옵션은 Package.appxmanifest 파일에 직접 복사됩니다.

참고: 이전 패키지를 그냥 두고 게임을 빌드하면 Package.appxmanifest 파일을 덮어쓰지 않습니다.


• 2017–05–16 편집 리뷰 없이 페이지 수정됨

유니버설 Windows 플랫폼: C# 스크립트의 WinRT API
스크립팅 백엔드