Version: Unity 6.0 (6000.0)
언어 : 한국어
스크립트를 어셈블리로 구성
어셈블리 에셋 생성

Unity의 어셈블리 소개

Unity는 스크립트를 어셈블리로 구성하는 데 도움이 되는 두 가지 특수 에셋 유형인 어셈블리 정의와 어셈블리 레퍼런스를 제공합니다.

어셈블리는 스크립트에 의해 정의되고 다른 어셈블리에 대한 레퍼런스도 정의하는 컴파일된 클래스와 구조체가 포함되어 있는 C# 코드 라이브러리입니다. C#의 어셈블리에 대한 자세한 내용은 .NET의 어셈블리를 참조하십시오.

기본적으로 Unity는 거의 모든 게임 스크립트를 Assembly-CSharp.dll이라는 사전 정의된 어셈블리로 컴파일합니다. Unity는 더 작은 특수 사전 정의 어셈블리도 생성합니다.

이 배열은 소규모 프로젝트에 적합하지만, 프로젝트에 코드를 더 추가할 경우 몇 가지 단점이 있습니다.

  • 하나의 스크립트를 변경할 때마다 Unity는 다른 모든 스크립트를 다시 컴파일해야 하므로 반복적 코드 변경을 위한 전체 컴파일 시간이 늘어납니다.
  • 모든 스크립트는 다른 스크립트에서 정의된 유형에 직접 액세스할 수 있으므로 코드를 리팩터링하고 개선하기가 더 어려울 수 있습니다.
  • 모든 스크립트는 모든 플랫폼에 대해 컴파일됩니다.

어셈블리를 정의하면 코드를 정리하여 모듈성과 재사용성을 높일 수 있습니다. 정의한 어셈블리의 스크립트는 더 이상 기본 어셈블리에 추가되지 않으며 다른 커스텀 어셈블리의 스크립트에만 액세스할 수 있습니다.

위 다이어그램은 프로젝트의 코드를 여러 어셈블리로 분할하는 방법을 나타냅니다. MainStuff를 참조하고 그 반대는 그렇지 않습니다. 따라서 Main의 코드에 대한 변경 사항은 Stuff의 코드에 영향을 줄 수 없습니다. 마찬가지로 Library는 다른 어셈블리에 의존하지 않으므로 다른 프로젝트에서 Library의 코드를 더 쉽게 재사용할 수 있습니다.

어셈블리 정의

프로젝트 코드를 어셈블리로 구성하려면 원하는 각 어셈블리에 대한 폴더를 생성하고, 각 어셈블리에 속해야 하는 스크립트를 관련 폴더로 옮겨야 합니다. 그런 다음 어셈블리 정의 에셋을 생성하여 어셈블리 프로퍼티를 지정합니다.

Unity는 에셋에서 정의한 이름과 기타 설정을 사용하여 어셈블리 정의가 포함된 폴더에 있는 모든 스크립트를 단일 어셈블리로 컴파일합니다. 어셈블리는 하위 폴더에 자체적인 어셈블리 정의 또는 어셈블리 레퍼런스 에셋이 있는 경우를 제외하고는 하위 폴더에 스크립트를 포함합니다.

기존 어셈블리에 자식이 아닌 폴더의 스크립트를 포함하려면 자식이 아닌 폴더에 어셈블리 레퍼런스 에셋을 생성하고 타겟 어셈블리를 정의하는 어셈블리 정의 에셋을 참조하도록 설정합니다. 예를 들어 해당 폴더의 위치에 관계없이 프로젝트의 모든 에디터 폴더의 스크립트를 자체 어셈블리에 결합할 수 있습니다.

Unity는 종속성에 따라 결정된 순서로 어셈블리를 컴파일합니다. 컴파일이 수행되는 순서는 지정할 수 없습니다.

스크립트가 속한 어셈블리 찾기

스크립트가 속한 어셈블리를 식별하려면 프로젝트 창에서 스크립트 파일을 선택하여 해당 프로퍼티를 인스펙터 창에서 확인합니다. 어셈블리 파일 이름과 어셈블리 정의(존재하는 경우)는 인스펙터Assembly Information 섹션에 표시됩니다.

에디터 폴더

Unity는 일반적으로 Editor라는 이름의 폴더에 있는 스크립트를 스크립트 위치와 상관없이 사전 정의된 Assembly-CSharp-Editor 어셈블리에 컴파일합니다. 하지만 아래에 에디터 폴더가 있는 폴더에 어셈블리 정의 에셋을 생성하면 Unity는 해당 에디터 스크립트를 더 이상 사전 정의된 에디터 어셈블리에 넣지 않습니다. 대신 어셈블리 정의에 의해 생성된 새 어셈블리로 이동하며, 이는 적절한 위치가 아닐 수도 있습니다. Editor 폴더를 관리하려면 각 Editor 폴더에 어셈블리 정의 또는 레퍼런스 에셋을 생성하여 해당 스크립트를 하나 이상의 에디터 어셈블리에 배치할 수 있습니다. 자세한 내용은 에디터 코드용 어셈블리 생성을 참조하십시오.

추가 리소스

스크립트를 어셈블리로 구성
어셈블리 에셋 생성
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961