必须将包内的脚本与程序集定义文件 (.asmdef
) 关联。在 Unity 中,程序集定义文件等效于 .NET 生态系统中的 C# 项目。必须在程序集定义文件中设置对其他程序集(无论是在同一包中还是在外部包中)的显式引用。请参阅程序集定义以了解更多详细信息。
请使用以下约定来命名和存储程序集定义文件,确保编译的程序集文件名遵循 .NET Framework 设计指南 (.NET Framework Design Guidelines):
将特定于 Editor 的代码存储在根 Editor 程序集定义文件中:
Editor/[YourCompany].[YourPackageName].Editor.asmdef
将特定于运行时的代码存储在根运行时程序集定义文件中:
Runtime/[YourCompany].[YourPackageName].asmdef
为 Editor 和运行时脚本配置相关的测试程序集:
Tests/Editor/[YourCompany].[YourPackageName].Editor.Tests.asmdef
Tests/Runtime/[YourCompany].[YourPackageName].Tests.asmdef
要整体了解建议的包文件夹布局,请参阅包布局。
在此示例中,程序集定义文件使用对其自身程序集以及作为包依赖项的一部分的程序集的引用 ( HDRP):
{
"name": "[YourCompany].[YourPackageName]",
"references": [
"[YourCompany].[YourPackageName].Tools",
"[YourCompany].[YourPackageName].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
}
有关程序集定义文件的结构的详细信息,请参阅程序集定义文件格式。