Assembly definition and packages
Configure assembly definitions so the Editor compiles package scripts as separate assemblies.
Read time 1 minuteLast updated 15 days ago
You must associate scripts inside a package to an assembly definition file (). Assembly definition files are the Unity equivalent to a C# project in the .NET ecosystem. You must set explicit references in the assembly definition file to other assemblies (whether in the same package or in external packages). Refer to Assembly Definitions for more details.
.asmdefUse these conventions for naming and storing your assembly definition files to ensure that the compiled assembly filenames follow the .NET Framework Design Guidelines:
-
Store Editor-specific code under a root editor assembly definition file:
Editor/<company-name>.<package-name>.Editor.asmdef -
Store runtime-specific code under a root runtime assembly definition file:
Runtime/<company-name>.<package-name>.asmdef -
Configure related test assemblies for your editor and runtime scripts:
Tests/Editor/<company-name>.<package-name>.Editor.Tests.asmdefTests/Runtime/<company-name>.<package-name>.Tests.asmdef
To get a more general view of a recommended package folder layout, refer to Package layout.
Example file
In this example, the assembly definition file uses references to its own assemblies, and an assembly that's part of a package dependency (HDRP):
{ "name": "MyCompany.MyPackageName", "references": [ "MyCompany.MyPackageName.Tools", "MyCompany.MyPackageName.Planes", "Unity.RenderPipelines.HighDefinition.Runtime" ], "includePlatforms": [], "excludePlatforms": [], "allowUnsafeCode": false, "overrideReferences": false, "precompiledReferences": [], "autoReferenced": true, "defineConstraints": [], "versionDefines": [ { "name": "com.unity.render-pipelines.high-definition", "expression": "7.1.0", "define": "HDRP_7_1_0_OR_NEWER" }, { "name": "com.unity.modules.particlesystem", "expression": "1.0.0", "define": "USING_PARTICLE_SYSTEM" } ], "noEngineReferences": false}
For details about the structure of an assembly definition file, refer to Assembly Definition File Format.