Version: 2019.1 (switch to 2018.3 or 2017.4)
Naming your package
Adding tests to a package
Other Versions

Package layout

This is the package layout convention followed by official Unity packages:

<root>
  ├── package.json
  ├── README.md
  ├── CHANGELOG.md
  ├── LICENSE.md
  ├── Editor
  │   ├── Unity.[YourPackageName].Editor.asmdef
  │   └── EditorExample.cs
  ├── Runtime
  │   ├── Unity.[YourPackageName].asmdef
  │   └── RuntimeExample.cs
  ├── Tests
  │   ├── Editor
  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef
  │   │   └── EditorExampleTest.cs
  │   └── Runtime
  │        ├── Unity.[YourPackageName].Tests.asmdef
  │        └── RuntimeExampleTest.cs
  └── Documentation~
       └── [YourPackageName].md

Location Description
package.json The package manifestEach package has a package 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 is generally documentation to help developers who want to modify the package or push a new change on the package master source repository.
CHANGELOG.md Description of package changes in reverse chronological order. It is good practice to use a standard format, like Keep a Changelog.
LICENSE.md Contains the package license text. Usually the Package Manager copies the text from the selected SPDX list website.
Editor/ Editor platform-specific Assets folder. Unlike Editor folders under Assets, this is only a convention and does not affect the AssetAny media or data that can be used in your game or Project. An asset may come from a file created outside of Unity, such as a 3D model, an audio file or an image. You can also create some asset types in Unity, such as an Animator Controller, an Audio Mixer or a Render Texture. More info
See in Glossary
import pipeline. See Assembly definition and packages to properly configure Editor-specific assemblies in this folder.
Runtime/ Runtime platform-specific Assets folder. This is only a convention and does not affect the Asset import pipeline. See Assembly definition and packages to properly configure runtime assemblies in this folder.
Tests/ Package tests folder.
Tests/Editor/ Editor platform specific tests folder. See Assembly definition and packages to properly configure Editor-specific test assemblies in this folder.
Tests/Runtime/ Runtime platform specific tests. See Assembly definition and packages to properly configure runtime test assemblies in this folder.
Documentation~ Optional folder for documentation for the package. See Documenting your package for more information.

Did you find this page useful? Please give it a rating:

Naming your package
Adding tests to a package