必须将包内的脚本与程序集定义文件 (.asmdef) 关联。在 Unity 中,程序集定义文件等效于 .NET 生态系统中的 C# 项目。必须在程序集定义文件中显式设置对其他程序集的引用(无论是在同一包中还是在外部包中)。请参阅程序集定义了解更多详细信息。
请使用以下约定来命名和存储程序集定义文件,以确保编译的程序集文件名遵循 .NET 框架设计指南:
将特定于 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
要整体了解建议的包文件夹布局,请参阅包布局。
在此示例中,程序集定义文件使用了对其自身程序集的引用,以及对作为包依赖关系 (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
}
有关程序集定义文件的结构的详细信息,请参阅程序集定义文件格式。