유니버설 Windows 플랫폼: .NET 스크립팅 백엔드에서 결여된 .NET 타입
유니버설 Windows 플랫폼: .Net 스크립팅 백엔드에서 디버깅

유니버설 Windows 플랫폼: .NET 스크립팅 백엔드의 플러그인

유니버설 Windows 플랫폼 플러그인 설정

이 설정을 보려면 Unity 에디터의 프로젝트 창으로 이동하여 플러그인 파일을 선택한 다음 인스펙터 창에서 Platform settings > Universal Windows Platform(Windows 아이콘)을 선택합니다.

유니버설 Windows 플랫폼 플러그인 설정
유니버설 Windows 플랫폼 플러그인 설정
프로퍼티: 기능:
SDK 드롭다운을 사용하여 플러그인이 Any SDK 또는 특정 SDK와 호환되게 합니다.
CPU 드롭다운을 사용하여 플러그인이 Any CPU 와 호환되게 하거나 플러그인을 32-bit, 64-bit, 또는 ARM 플레이어로 제한합니다.
Don’t process
(관리되는 어셈블리에만 해당)
이 체크박스를 선택하여 현재 어셈블리에 대해 패칭을 비활성화합니다. 어셈블리에 Unity 에디터에서 직렬화하는 클래스가 있는 경우 패치해야 합니다. 이 경우 Unity 에디터는 추가 IL 코드를 어셈블리에 삽입합니다. 어셈블리에 클래스가 없다는 사실을 알고 있는 경우 패칭을 비활성화해도 안전합니다.
참고: Unity 에디터는 어셈블리에 직렬화 코드를 삽입하므로 MonoBehaviour에서 파생된 클래스가 플러그인에 있고 Unity 에디터가 이를 패칭하지 않는 경우 런타임 중에 직렬화 오류가 발생할 수 있습니다.
Placeholder
(관리되는 어셈블리에만 해당)
유니버설 Windows 플랫폼을 사용하면 .NET 코어에 대해 플러그인을 컴파일할 수 있지만, Unity 에디터는 Mono에서 실행되므로 이러한 어셈블리를 인식하지 못합니다. 따라서 C# 파일에서 어셈블리를 참조할 수 없습니다. 이 문제를 피하려면 실제 플러그인의 플레이스홀더 역할을 하는 API가 동일한 .NET 4.x에 대해 컴파일된 어셈블리를 제공해야 합니다. 다음 섹션인 플레이스홀더 플러그인 을 참조하십시오.

자세한 내용은 플러그인 인스펙터 문서를 참조하십시오.

플레이스홀더 플러그인

Windows 런타임 API를 사용할 때에는 Unity 에디터에서 유니버설 Windows 플랫폼 관련 플러그인을 사용할 수 없습니다. 여기에서는 Unity 에디터에서 이 문제를 처리하는 방법에 대해 설명합니다.

플러그인을 Unity 에디터에서 사용하지 않고 유니버설 Windows 플랫폼에만 사용하려는 경우 플레이스홀더를 만들지 않아도 되지만, 플러그인 API를 사용하는 코드에 다음을 래핑해야 합니다.

# if !UNITY_EDITOR
// Plugin code
# endif

플러그인을 유니버설 Windows 플랫폼과 Unity 에디터에 모두 사용하려는 경우 플레이스홀더가 필요합니다. 다음 플러그인 두 개를 만드십시오.

  • 유니버설 Windows 플랫폼의 경우 Windows Runtime API가 안에 있는 .NET Core에 대해 컴파일된 어셈블리 플러그인
  • Unity 에디터의 경우 더미 함수 구현과 공용 API가 동일한 .NET 4.5에 대해 컴파일된 어셈블리 플러그인(이 플러그인이 플레이스홀더임)

두 플러그인 모두 같은 이름을 공유해야 하고 어셈블리 버전이 같아야 합니다. Unity 에디터의 플레이스홀더 플러그인은 UnityEditor.dll 을 레퍼런스할 수 없습니다. 레퍼런스할 경우 Unity 에디터가 오류를 생성합니다.

에디터에서 플랫폼을 할당하는 방법은 다음과 같습니다.

  1. Unity 에디터의 프로젝트 창에서 에디터 호환 플레이스홀더 플러그인을 선택합니다. 인스펙터 창에서 Select platforms for plugin 으로 이동하여 Editor 를 유일한 호환 플랫폼으로 선택합니다.

  2. Unity 에디터의 프로젝트 창에서 유니버설 Windows 플랫폼 호환 플레이스홀더 플러그인을 선택합니다. 인스펙터 창에서 Select platforms for plugin 으로 이동하여 Universal Windows Platform 을 유일한 호환 플랫폼으로 선택합니다.

  3. 유니버설 Windows 플랫폼의 인스펙터 창에서 Placeholder 필드를 에디터 호환 플레이스홀더 플러그인으로 설정합니다.

이렇게 하면 유니버설 Windows 플랫폼을 타겟으로 빌드하는 경우 Unity 에디터가 스트립트를 컴파일할 때 에디터 호환 플레이스홀더 플러그인을 사용하지만, 유니버설 Windows 플랫폼 호환 플러그인을 마지막 폴더로 복사합니다. 이 경우 Unity 에디터는 스크립트를 성공적으로 컴파일하지만 빌드된 게임 자체에서는 유니버설 Windows 플랫폼 관련 플러그인의 API를 계속 사용하는 두 가지 결과로 이어집니다.


  • • 2018–08–03 일부 편집 리뷰를 거쳐 페이지 수정됨

  • 2018.3에서 NET 3.5 스크립팅 런타임의 지원이 중단됨

유니버설 Windows 플랫폼: .NET 스크립팅 백엔드에서 결여된 .NET 타입
유니버설 Windows 플랫폼: .Net 스크립팅 백엔드에서 디버깅