Unity는 일부 프로젝트 폴더 이름을 예약하여 콘텐츠의 특수 목적을 나타냅니다. 이러한 폴더 중 일부는 스크립트 컴파일 순서에 영향을 미칩니다. 이러한 폴더 이름은 다음과 같습니다.
이러한 폴더에 대한 자세한 내용은 특수 폴더 이름을 참조하십시오.
Unity는 프로젝트 폴더 구조 내에 스크립트 파일이 있는 위치에 따라 스크립트를 4단계로 컴파일합니다. Unity는 각 단계에 대해 별도의 CSharp 프로젝트 파일(.csproj)과 사전 정의된 어셈블리를 생성합니다. (컴파일 단계에 적합한 스크립트가 없는 경우 Unity는 해당 프로젝트 파일 또는 어셈블리를 생성하지 않음)
스크립트가 다른 단계에서 컴파일된 클래스를 참조하므로 다른 어셈블리에 있는 경우 컴파일 순서는 중요합니다. 기본적인 규칙은 현재 단계 후의 단계에서 컴파일되는 모든 것이 참조될 수 없다는 것입니다. 현재 단계 또는 이전 단계에서 컴파일된 모든 것은 완전히 사용할 수 있습니다.
아래는 컴파일의 각 단계에 대한 설명입니다.
| 단계 | 어셈블리 이름 | 스크립트 파일 |
|---|---|---|
| 1 | Assembly-CSharp-firstpass | Standard Assets, Pro Standard Assets 및 Plugins 폴더의 런타임 스크립트. |
| 2 | Assembly-CSharp-Editor-firstpass | 최상위 폴더인 Standard Assets, Pro Standard Assets 및 Plugins 폴더 내에 있는 Editor 폴더의 에디터 스크립트. |
| 3 | Assembly-CSharp | Editor 폴더에 있지 않은 기타 모든 스크립트. |
| 4 | Assembly-CSharp-Editor | 나머지 모든 스크립트(Editor 폴더에 있는 스크립트). |
참고: 스탠다드 에셋은 Assets 루트 폴더에서만 작동합니다.
어셈블리 정의 파일을 생성하여 자체 어셈블리를 사용해 프로젝트의 스크립트를 정리할 수 있습니다. 자체 어셈블리를 정의하면 관련 없는 코드 변경을 수행할 때 다시 컴파일해야 하는 코드의 양을 줄이고 다른 어셈블리에 대한 종속성을 더 잘 제어할 수 있습니다. 자세한 내용은 스크립트 컴파일 - 어셈블리 정의 파일을 참조하십시오.