다음은 커스텀 패키지에 대한 권장 패키지 레이아웃입니다.
<package-root>
├── package.json
├── README.md
├── CHANGELOG.md
├── LICENSE.md
├── Third Party Notices.md
├── Editor
│ ├── <company-name>.<package-name>.Editor.asmdef
│ └── EditorExample.cs
├── Runtime
│ ├── <company-name>.<package-name>.asmdef
│ └── RuntimeExample.cs
├── Tests
│ ├── Editor
│ │ ├── <company-name>.<package-name>.Editor.Tests.asmdef
│ │ └── EditorExampleTest.cs
│ └── Runtime
│ ├── <company-name>.<package-name>.Tests.asmdef
│ └── RuntimeExampleTest.cs
├── Samples~
│ ├── SampleFolder1
│ ├── SampleFolder2
│ └── ...
└── Documentation~
└── <package-name>.md
많은 공식 Unity 패키지에서도 이 구조를 구현합니다.
위치 | 설명 |
---|---|
package.json |
패키지 종속성 및 기타 메타데이터를 정의하는 패키지 매니페스트입니다. |
README.md |
개발자 패키지 기술 자료입니다. 일반적으로 개발자가 패키지를 변경하거나 패키지의 메인 브랜치에 새로운 변경 사항을 적용할 때 도움이 됩니다. |
CHANGELOG.md |
패키지 변경 사항에 대한 설명입니다(최근 시간순). 변경 기록 유지 같은 표준 포맷을 사용하는 것이 좋습니다. |
LICENSE.md |
패키지 라이선스 텍스트가 들어 있습니다. 대개 패키지 관리자는 선택된 SPDX 리스트 웹사이트에서 텍스트를 복사합니다. |
Third Party Notices.md |
법적 요구 사항을 충족하는 데 필요한 정보가 포함되어 있습니다. |
Editor/ |
에디터 플랫폼별 Assets 폴더입니다. Assets 폴더 아래에 있는 Editor 폴더와 달리, 이 폴더는 규칙일 뿐이며 에셋 임포트 파이프라인에 영향을 미치지 않습니다. 어셈블리 정의 및 패키지를 참조하여 이 폴더에 에디터별 어셈블리를 올바르게 설정하십시오. |
Runtime/ |
런타임 플랫폼별 Assets 폴더입니다. 이 폴더는 규칙일 뿐이며 에셋 임포트 파이프라인에는 영향을 미치지 않습니다. 어셈블리 정의 및 패키지를 참조하여 이 폴더에 런타임 어셈블리를 올바르게 설정하십시오. |
Tests/ |
패키지에 모든 포함된 테스트를 저장하는 폴더입니다. |
Tests/Editor/ |
에디터 플랫폼별 테스트 폴더입니다. 어셈블리 정의 및 패키지를 참조하여 이 폴더에 에디터별 테스트 어셈블리를 올바르게 설정하십시오. |
Tests/Runtime/ |
런타임 플랫폼별 테스트입니다. 어셈블리 정의 및 패키지를 참조하여 이 폴더에 런타임 테스트 어셈블리를 올바르게 설정하십시오. |
Samples~/ |
패키지에 모든 포함된 샘플을 저장하는 폴더입니다. |
Documentation~ |
패키지에 모든 포함된 문서를 저장하는 폴더입니다. |
Unity에서는 ~
로 끝나는 폴더 이름을 가진 콘텐츠를 무시하며 .meta
파일로 되어 있을 경우 추적하지 않습니다. 하지만 제대로 작동하려면 Editor
, Runtime
, Tests
폴더와 콘텐츠에 .meta
파일을 포함해야 합니다. .meta
파일과 Unity가 추적에 이를 사용하는 방법에 대한 자세한 내용은 에셋 워크플로를 참조하십시오.