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 프레임워크 디자인 가이드라인을 준수하도록 해야 합니다.
에디터별 코드를 루트 에디터 어셈블리 정의 파일 아래에 저장하십시오.
Editor/<company-name>.<package-name>.Editor.asmdef
런타임별 코드를 루트 런타임 어셈블리 정의 파일 아래에 저장하십시오.
Runtime/<company-name>.<package-name>.asmdef
에디터 및 런타임 스크립트에 대한 관련 테스트 어셈블리를 설정하십시오.
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.