版本:2022.3
语言:英文
程序集定义引用属性
插件

程序集定义文件格式

程序集定义和程序集定义引用资产是JSON文件。您可以使用 检查器一个Unity窗口,显示有关当前选定的GameObject、资产或项目设置的信息,允许您检查和编辑值。 更多信息
参考词汇表
窗口中的资产文件进行编辑,但您还可以使用外部工具修改JSON内容。

程序集定义JSON

程序集定义是一个具有以下字段的JSON对象

allowUnsafeCode bool

可选的。默认为false。见允许“不安全”代码

"allowUnsafeCode" : true

autoReferenced bool

可选的。默认为true。见自动引用

"autoReferenced": false

defineConstraints string[]

可选的。作为约束的符号。可以为空。见定义约束

"defineConstraints": [
        "UNITY_2019",
        "UNITY_INCLUDE_TESTS"
    ]

excludePlatforms string[]

可选的。要排除的平台名称字符串或空数组。如果includePlatforms 包含值,则 excludePlatforms 数组必须为空。您可以使用 CompilationPipeline.GetAssemblyDefinitionPlatforms 函数检索平台名称字符串(调用此函数时,当前编辑器必须已安装平台支持。)见平台

"includePlatforms": [],
"excludePlatforms": [
        "iOS",
        "macOSStandalone",
        "tvOS"
]

includePlatforms string[]

可选的。要包含的平台名称字符串或空数组。如果 excludePlatforms 包含值,则 includePlatforms 数组必须为空。您可以使用 CompilationPipeline.GetAssemblyDefinitionPlatforms 函数检索平台名称字符串(调用此函数时,当前编辑器必须已安装平台支持。)见平台

"includePlatforms": [
        "Android",
        "LinuxStandalone64",
        "WebGL"
],
"excludePlatforms": []

name string

必需的。任何 合法的程序集名称。

"name" : "MyAssemblyName" 

noEngineReferences bool

可选的。默认为false。见无引擎引用

"noEngineReferences": false

optionalUnityReferences string[]

可选的。在Unity的早期版本中,此字段序列化了 Unity引用:测试程序集 选项,用于指定程序集为测试程序集。从Unity 2019.3开始,此选项不再显示。字段仍受支持,但如果资产在新版本的Unity编辑器中重新序列化,则字段将替换为等效的程序集引用。

有关测试程序集的更多信息,请参阅创建测试程序集

"optionalUnityReferences": [
    "TestAssemblies"
  ]

overrideReferences bool

可选的。如果 precompiledReferences 包含值,则设置为true。默认为false。

见[覆盖引用]。

"overrideReferences": true

precompiledReferences string[]

可选的。包括扩展名的引用DLL库的文件名,但不包括其他路径元素。可以为空。除非您将 overrideReferences 设置为true,否则此数组将被忽略。

程序集引用

"overrideReferences": true,
"precompiledReferences": [
        "Newtonsoft.Json.dll",
        "nunit.framework.dll"
]

references string[]

可选。引用使用组件定义资产创建的其他组件。您可以使用组件定义资产文件的GUID或组件的名称(由组件定义的名称字段定义)。必须使用相同的格式为列表中的所有引用。可以为空。

您可以使用AssetDatabase.AssetPathToGUID函数来检索资产的GUID。(GUID也是每个资产关联元数据的一部分。)

请注意,编辑器在组件定义检查器中显示一个使用GUID选项。该选项未在相关的JSON文件中进行序列化。相反,选择是通过文件中找到的引用形式推断出来的。

参见引用另一个组件

使用GUID

"references": [
        "GUID:17b36165d09634a48bf5a0e4bb27f4bd",
        "GUID:b470eee7144904e59a1064b70fa1b086",
        "GUID:2bafac87e7f4b9b418d9448d219b01ab",
        "GUID:27619889b8ba8c24980f49ee34dbb44a",
        "GUID:0acc523941302664db1f4e527237feb3"
]

使用组件名称

"references": [
        "Unity.CollabProxy.Editor",
        "AssemblyB",
        "UnityEngine.UI",
        "UnityEngine.TestRunner",
        "UnityEditor.TestRunner"
]

versionDefines object[]

可选。包含为每个版本定义的对象。该对象有三个字段

  • name - 资源名称
  • expression - 定义版本或资源版本的取值范围的取值
  • define - 要定义的符号

参见版本定义

"versionDefines": [
    {
        "name": "com.unity.ide.vscode",
        "expression": "[1.7,2.4.1]",
        "define": "MY_SYMBOL"
    },
    {
        "name": "com.unity.test-framework",
        "expression": "[2.7.2-preview.8]",
        "define": "TESTS"
    }
]

示例组件定义JSON字符串

对于其他组件定义和 includePlatforms 使用组件名称进行引用

{
    "name": "BeeAssembly",
    "references": [
        "Unity.CollabProxy.Editor",
        "AssemblyB",
        "UnityEngine.UI",
        "UnityEngine.TestRunner",
        "UnityEditor.TestRunner"
    ],
    "includePlatforms": [
        "Android",
        "LinuxStandalone64",
        "WebGL"
    ],
    "excludePlatforms": [],
    "overrideReferences": true,
    "precompiledReferences": [
        "Newtonsoft.Json.dll",
        "nunit.framework.dll"
    ],
    "autoReferenced": false,
    "defineConstraints": [
        "UNITY_2019",
        "UNITY_INCLUDE_TESTS"
    ],
    "versionDefines": [
        {
            "name": "com.unity.ide.vscode",
            "expression": "[1.7,2.4.1]",
            "define": "MY_SYMBOL"
        },
        {
            "name": "com.unity.test-framework",
            "expression": "[2.7.2-preview.8]",
            "define": "TESTS"
        }
    ],
    "noEngineReferences": false
}

对于其他组件定义和 excludePlatforms 使用GUID进行引用

{
    "name": "BeeAssembly",
    "references": [
        "GUID:17b36165d09634a48bf5a0e4bb27f4bd",
        "GUID:b470eee7144904e59a1064b70fa1b086",
        "GUID:2bafac87e7f4b9b418d9448d219b01ab",
        "GUID:27619889b8ba8c24980f49ee34dbb44a",
        "GUID:0acc523941302664db1f4e527237feb3"
    ],
    "includePlatforms": [],
    "excludePlatforms": [
        "iOS",
        "macOSStandalone",
        "tvOS"
    ],
    "allowUnsafeCode": false,
    "overrideReferences": true,
    "precompiledReferences": [
        "Newtonsoft.Json.dll",
        "nunit.framework.dll"
    ],
    "autoReferenced": false,
    "defineConstraints": [
        "UNITY_2019",
        "UNITY_INCLUDE_TESTS"
    ],
    "versionDefines": [
        {
            "name": "com.unity.ide.vscode",
            "expression": "[1.7,2.4.1]",
            "define": "MY_SYMBOL"
        },
        {
            "name": "com.unity.test-framework",
            "expression": "[2.7.2-preview.8]",
            "define": "TESTS"
        }
    ],
    "noEngineReferences": false
}

组件定义引用JSON

组件定义引用是一个JSON对象,具有以下字段

引用字符串

必需。要引用的组件定义。参见组件定义引用

您可以使用组件的名称或资产的GUID来引用组件定义资产。您可以使用AssetDatabase.AssetPathToGUID函数来检索资产的GUID。(GUID也是每个资产关联元数据的一部分。)

使用组件名称

{
    "reference": "AssemblyA"
}

使用组件定义资产的GUID

{
    "reference": "GUID:f4de40948f4904ecb94b59dd38aab8a1"
}

参见创建组件定义引用资产

程序集定义引用属性
插件