인스펙터 창에서 어셈블리의 프로퍼티를 설정하려면 해당 어셈블리 정의 에셋을 클릭합니다.
어셈블리 정의 프로퍼티는 다음 섹션으로 구성됩니다.
| 프로퍼티: | 설명: |
|---|---|
| Name | 파일 확장자가 없는 어셈블리 이름입니다. 어셈블리 이름은 프로젝트 전체에서 고유해야 합니다. 특히 두 개 이상의 프로젝트에서 어셈블리를 사용하려는 경우에는 역 DNS 이름 지정 스타일을 사용하여 이름 충돌의 가능성을 줄일 수 있습니다. 참고: Unity는 어셈블리 정의 에셋에 할당한 이름을 Name 필드의 기본값으로 사용하지만, 필요에 따라 이름을 변경할 수 있습니다. 하지만 GUID가 아닌 이름으로 어셈블리 정의를 참조하는 경우 이름을 변경하면 참조가 중단됩니다. |
| Allow ‘unsafe’ Code | 어셈블리 내 스크립트에서 C# unsafe 키워드를 사용한 경우 Allow ‘unsafe’ Code 옵션을 활성화합니다. 이 설정을 활성화하면 Unity는 어셈블리를 컴파일할 때 /unsafe 옵션을 C# 컴파일러에 전달합니다. |
| Auto Referenced | 사전 정의된 어셈블리가 이 프로젝트 어셈블리를 참조할지 지정합니다. Auto Reference 옵션을 비활성화하면 Unity는 컴파일 중에 어셈블리를 자동으로 참조하지 않습니다. 이는 Unity가 어셈블리를 빌드에 포함하는지에 영향을 미치지 않습니다. |
| No Engine References | 이 프로퍼티를 활성화하면 Unity는 어셈블리를 컴파일할 때 UnityEditor 또는 UnityEngine에 레퍼런스를 추가하지 않습니다. |
| Override References | Override References 설정을 활성화하면 이 어셈블리가 의존하는 사전 컴파일된 어셈블리를 수동으로 지정할 수 있습니다. Override References를 활성화하면 인스펙터에 레퍼런스를 지정하는 데 사용할 수 있는 Assembly References 섹션이 표시됩니다. 사전 컴파일된 어셈블리는 Unity 프로젝트 외부에서 컴파일된 라이브러리입니다. 기본적으로 프로젝트에서 정의하는 어셈블리는 프로젝트에 추가한 모든 사전 컴파일된 어셈블리를 참조합니다. 이는 사전 정의된 어셈블리가 모든 사전 컴파일된 어셈블리를 참조하는 방식과 일치합니다. Override References를 활성화하면 이 어셈블리는 Assembly References에서 추가한 사전 컴파일된 어셈블리만 참조합니다. 참고: 프로젝트 어셈블리가 사전 컴파일된 어셈블리를 자동으로 참조하지 않도록 하려면 Auto Referenced 옵션을 비활성화합니다. 자세한 내용은 플러그인 인스펙터를 참조하십시오. |
| Root Namespace | 이 어셈블리 정의의 스크립트에 대한 기본 네임스페이스입니다. [Rider] 또는 [Visual Studio]를 코드 에디터로 사용하는 경우 이 어셈블리 정의에서 생성하는 모든 새 스크립트에 이 네임스페이스가 자동으로 추가됩니다. |
자세한 내용은 어셈블리 정의 에셋 생성을 참조하십시오.
정의 제약은 Unity가 어셈블리를 컴파일하거나 참조하도록 정의해야 하는 컴파일러 #define 지시문을 지정합니다.
Unity는 모든 정의 제약이 충족된 경우에만 프로젝트 어셈블리를 컴파일하고 참조합니다. 제약은 C#의 #if 프리 프로세서 지시문처럼 작동하지만 스크립트 레벨이 아닌 어셈블리 레벨에서 작동합니다. 제약 조건을 충족할 모든 심볼을 Define Constraints 설정에서 정의합니다.
심볼이 정의되지 않도록 지정하려면 부정을 나타내는 !(느낌표) 심볼을 접두사로 사용하십시오. 예를 들어 다음 심볼을 Define Constraints로 지정하는 경우는 다음과 같습니다.
!ENABLE_IL2CPPUNITY_2018_3_OR_NEWER심볼 ENABLE_IL2CPP가 정의되어 있지 않고 심볼 UNITY_2018_3_OR_NEWER가 정의되어 있으면 제약 조건이 충족됩니다. 그 결과 Unity는 Unity 2018.3 이상의 비__ IL2CPP__Unity에서 개발한 스크립팅 백엔드로, 여러 플랫폼용 프로젝트를 빌드할 때 Mono 대신 사용할 수 있습니다. 자세한 정보
See in Glossary 스크립팅 런타임에서만 이 어셈블리를 컴파일하고 참조합니다.
하나 이상의 제약 조건만 충족하면 제약이 충족된 것으로 지정하려면 || (OR) 연산자를 사용합니다. 예시:
UNITY_IOS || UNITY_EDITOR_OSXUNITY_2019_3_OR_NEWER!UNITY_ANDROID제약 조건은 UNITY_IOS 또는 UNITY_EDITOR_OSX 및 UNITY_2019_3_OR_NEWER가 정의되어 있고 UNITY_ANDROID가 정의되어 있지 않은 경우에 충족됩니다. 개별 줄은 제약 조건 간의 논리적 AND 연산을 수행하는 것과 유사합니다. 위 예시는 다음과 동일합니다.
(UNITY_IOS OR UNITY_EDITOR_OSX) AND (UNITY_2019_3_OR_NEWER) AND (NOT UNITY_ANDROID)
Unity의 빌트인 #define 지시문, 전역 컴파일러 리스폰스(.rsp) 파일, 프로젝트의 Scripting Define Symbols 플레이어 설정에 정의된 심볼을 사용할 수 있습니다. 빌트인 심볼 목록을 비롯한 자세한 내용은 플랫폼별 컴파일을 참조하십시오.
참고: Scripting Define Symbols 설정은 플랫폼별로 다릅니다. 이 설정을 통해 어셈블리 사용 여부를 정의하는 경우 해당하는 모든 플랫폼에서 필수 심볼을 정의해야 합니다.
자세한 내용은 조건부 어셈블리 포함을 참조하십시오.
Unity는 현재 정의된 설정에 따라 각 제약을 표시합니다. 예를 들어 다음 세 개의 제약 세트는 현재 첫 번째 심볼이 정의되어 있고 나머지 두 개는 정의되어 있지 않음을 나타냅니다. 전체 제약이 충족되려면 개별 제약이 참이어야 하므로 에디터가 Define Constraints 섹션 전체를 현재 호환되지 않거나 유효하지 않은 것으로 표시합니다.
이 예시의 제약 조건을 충족하기 위해 두 번째 제약의 경우 (플레이어 설정에서) Scripting Backend를 IL2CPP로 변경하고 세 번째 제약에서 잘못된 문자를 제거하면 됩니다. 하지만 프로젝트를 빌드할 때 제약이 Unity 에디터에 표시되는 방식이 아니라, 제약이 평가되는 방식이 더 중요할 때가 많습니다. 예를 들어 IL2CPP 백엔드를 사용하는 빌드에만 포함하고 Mono 백엔드를 사용하는 다른 빌드에는 포함하지 않으려는 어셈블리가 있을 수 있습니다.
| 프로퍼티: | 설명: |
|---|---|
| Assembly Definition References | 어셈블리 정의 에셋을 사용하여 생성한 다른 어셈블리에 대한 레퍼런스를 지정합니다. Unity는 이러한 레퍼런스를 사용하여 어셈블리를 컴파일하고 어셈블리 간 종속성을 정의합니다. |
| Use GUIDs | 이 설정은 Unity가 다른 어셈블리 정의 에셋에 대한 레퍼런스를 직렬화하는 방식을 제어합니다. 이 프로퍼티를 활성화하면 Unity는 레퍼런스를 어셈블리 정의 이름 대신 에셋의 GUID로 저장합니다. 이름 대신 GUID를 사용하는 것이 좋습니다. 이를 참조하는 다른 어셈블리 정의 파일을 업데이트하지 않고도 어셈블리 정의 에셋의 이름을 변경할 수 있기 때문입니다. |
자세한 내용은 어셈블리 정의 에셋 생성을 참조하십시오.
Assembly References 섹션은 [General] 섹션에서 Override References 프로퍼티를 활성화한 경우에만 표시됩니다. 이 영역을 사용하면 이 어셈블리가 사용할 사전 컴파일된 어셈블리에 레퍼런스를 지정할 수 있습니다.
자세한 내용은 사전 컴파일된 플러그인 어셈블리 레퍼런스를 참조하십시오.
어셈블리의 플랫폼 호환성을 설정합니다. Unity는 포함된 (혹은 포함되지 않은) 플랫폼에서만 해당 어셈블리를 컴파일하거나 참조합니다.
자세한 내용은 플랫폼별 어셈블리 생성을 참조하십시오.
프로젝트의 패키지 및 모듈 버전에 따라 정의할 심볼을 지정하십시오.
| 프로퍼티: | 설명: |
|---|---|
| Resource | 패키지 또는 모듈입니다. |
| Define | 적용 가능한 리소스 버전이 Unity 프로젝트에도 있는 경우를 정의하는 심볼입니다. |
| Expression | 버전 또는 버전의 범위를 정의하는 표현식입니다. 자세한 내용은 버전 정의를 참조하십시오. |
| Expression outcome | 논리문으로 평가되는 표현식으로, 여기서 ‘x’는 확인된 버전입니다. 표현식 결과에 Invalid가 표시되면 표현식의 포맷이 잘못된 것입니다. |
자세한 내용은 프로젝트 패키지에 기반한 심볼 정의를 참조하십시오.