Package layout
Follow the recommended folder structure for the manifest, Editor and Runtime assemblies, tests, samples, and documentation.
Read time 2 minutesLast updated 14 days ago
This is the package layout recommended for custom packages:
<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
Many official Unity packages also implement this structure.
Location | Description |
|---|---|
| The package manifest, which defines the package dependencies and other metadata. This file name must be lowercase. |
| Developer package documentation. This is generally documentation to help developers who want to change the package or push a new change on the package's main branch. |
| Description of package changes in reverse chronological order. It's good practice to use a standard format, like Keep a Changelog. |
| Contains the package license text. Usually the Package Manager copies the text from the selected SPDX list website. |
| Contains information that's required to meet legal requirements. |
| Editor platform-specific Assets folder. Unlike Editor folders under Assets, this is only a convention and doesn't affect the Asset import pipeline. Refer to Assembly definition and packages to properly configure Editor-specific assemblies in this folder. |
| Runtime platform-specific Assets folder. This is only a convention and doesn't affect the Asset import pipeline. Refer to Assembly definition and packages to properly configure runtime assemblies in this folder. |
| Folder to store any tests included in the package. |
| Editor platform specific tests folder. Refer to Assembly definition and packages to properly configure Editor-specific test assemblies in this folder. |
| Runtime platform specific tests. Refer to Assembly definition and packages to properly configure runtime test assemblies in this folder. |
| Folder to store any samples included in the package. |
| Folder to store any documentation included in the package. |
Unity ignores the contents of any folder name that ends with the character, and doesn't track them with files. However, you need to include files for the , , and folders and their contents in order for them to work properly. For more information on files and how Unity uses them for tracking, refer to Asset workflow.
~.meta.metaEditorRuntimeTests.meta