Version: 2023.1
Language : English
Versioning
Meeting legal requirements

Assembly definition and packages

You must associate scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary
inside a package to an assembly definition file (.asmdef). 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.

Use 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.asmdef

    Tests/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.

Additional resources

Versioning
Meeting legal requirements