Explore the folder and file layout for Unity Package Manager (UPM) packages.
When you create the package structure, the Package Manager creates the following folder and file layout, which is consistent with UPM packagesA Package managed by the Unity Package Manager. Refer to Packages.
See in Glossary from the Unity Registry:
<package-root>
├── package.json
├── README.md
├── CHANGELOG.md
├── Third Party Notices.md
├── Editor
│ ├── <organization-name>.<package-name>.Editor.asmdef
│ └── EditorExample.cs
├── Runtime
│ ├── <organization-name>.<package-name>.asmdef
│ └── RuntimeExample.cs
├── Tests
│ ├── Editor
│ │ ├── <organization-name>.<package-name>.Editor.Tests.asmdef
│ │ └── EditorExampleTest.cs
│ └── Runtime
│ ├── <organization-name>.<package-name>.Tests.asmdef
│ └── RuntimeExampleTest.cs
├── Samples
│ ├── Example
│ └── ...
└── Documentation
└── <package-name>.md
File or folder | Description |
---|---|
package.json |
The package manifestEach package has a manifest, which provides information about the package to the Package Manager. The manifest contains information such as the name of the package, its version, a description for users, dependencies on other packages (if any), and other details. More info See in Glossary, which defines the package dependencies and other metadata. |
README.md |
Developer package documentation. This documentation helps developers who want to change the package or push a new change on the package’s main branch. |
CHANGELOG.md |
Description of package changes in reverse chronological order. It’s good practice to use a standard format, like Keep a Changelog. |
Third Party Notices.md |
Contains information that’s required to meet legal requirements for third-party code or dynamic link libraries (DLL) used in your package. |
Editor/ |
Contains assets (which can include scripts and libraries) for tools and utilities used in the Unity Editor. Unlike folders under the project’s Assets folder, this is only a convention and doesn’t affect the asset import pipeline. Refer to Create or edit the assembly definitions to configure Editor-specific assemblies in this folder. |
Runtime/ |
Contains assets (which can include scripts and libraries) for tools and utilities used at runtime. This is only a convention and doesn’t affect the asset import pipeline. Refer to Assembly definition and packages to configure runtime assemblies in this folder. |
Tests/ |
Folder to store any tests included in the package. |
Tests/Editor/ |
Editor platform-specific tests folder. Refer to Create or edit the assembly definitions to configure Editor-specific test assemblies in this folder. |
Tests/Runtime/ |
Runtime platform-specific tests. Refer to Create or edit the assembly definitions to configure runtime test assemblies in this folder. |
Samples/ |
Folder to store any samples included in the package. |
Documentation/ |
Folder to store any documentation included in the package. |
Note: The Documentation
and Samples
folders in packages provided by Unity end with the ~
character, which hides them in the Project window. For more information, refer to Reserved folder name reference.