You must associate scripts 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.
请使用以下约定来命名和存储程序集定义文件,确保编译的程序集文件名遵循 .NET Framework 设计指南 (.NET Framework Design Guidelines):
将特定于 Editor 的代码存储在根 Editor 程序集定义文件中:
Editor/<company-name>.<package-name>.Editor.asmdef
将特定于运行时的代码存储在根运行时程序集定义文件中:
Runtime/<company-name>.<package-name>.asmdef
为 Editor 和运行时脚本配置相关的测试程序集:
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.
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.