包含此页的版本:
不含此页的版本:
资产导入器(包括您编写的任何脚本导入器)应生成一致或确定性的结果。确定性导入器始终从相同的输入和依赖项集生成相同的输出。
为了验证导入器是否具有确定性,资产数据库可以通过以下方式检查当前项目中资产的导入结果的一致性:
-consistencyCheck命令行参数以打开编辑器。手动重新导入资源会导致 Unity 检查新的导入结果是否与之前缓存的导入结果匹配。
要开始手动重新导入,请选择资产并执行以下作之一:
然后,Unity 会检查生成的导入是否一致。如果检测到不一致的结果,Unity 会在控制台窗口Unity 编辑器窗口,显示 Unity 或您自己的脚本生成的错误、警告和其他消息。更多信息
请参阅术语表以及有关哪个进口商导致了问题的详细信息,例如:
Importer(<name of importer>) generated inconsistent result for asset(guid:<guid of the asset>) "<name of asset>"
重新导入根资源时,Unity 还会重新导入并对其子资源执行一致性检查。
如果使用命令行打开 Unity,则可以使用-consistencyCheck命令行参数,以对项目中的所有资产和导入器执行检查。然后,Unity 会将启动期间发现的任何不一致记录到控制台和编辑器日志文件中。
您还可以使用-consistencyCheckSourceMode参数来检查不同的源或 Unity Accelerator 缓存服务器。重要:如果您使用 Unity加速器Unity 加速器是一种外部工具,它提供资产缓存,用于保存团队导入资产的副本。加速器的目标是通过协调资产共享来加快团队合作并减少迭代时间,这样您就不需要重新导入项目的某些部分。更多信息
请参阅术语表作为源,Unity 会禁用从缓存服务器上传和下载以测试导入过程。有关更多信息,请参阅 Unity 编辑器命令行参数。
一致性检查器仅检查可以缓存的资产导入。例如,如果您禁用缓存ScriptedImporter实例,则该导入的一致性检查也会被禁用。有关更多信息,请参阅AssetImporters.ScriptedImporterAttribute有关如何禁用脚本导入器的缓存的详细信息。
当 Unity 检测到导入器不一致时,您可以在编辑器日志中找到有关该问题的更多信息。这包括以下信息:
以下是显示导入器不一致的编辑器日志示例:
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 07078a054d3f597b4c2cc47e8e4c0bde, producedFiles[0].extension: , producedFiles[0].contentHash: 8490a5ed35a4361d679e6055a386969e
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 07078a054d3f597b4c2cc47e8e4c0bde, producedFiles[1].extension: .info, producedFiles[1].contentHash: 4bd9140e19d2e44782f1131172e514ba
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 646d6432767729ea7d288c636183de97, producedFiles[0].extension: , producedFiles[0].contentHash: 5ca760170f85012ce16aa8c22e8d9ea1
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 646d6432767729ea7d288c636183de97, producedFiles[1].extension: .info, producedFiles[1].contentHash: 4bd9140e19d2e44782f1131172e514ba
Importer(ScriptedImporter:Assembly-CSharp::RandomImporter) generated inconsistent result for asset(guid:a1945cd7aab67441ba89015f97494624) "Assets/first.rand"
如果 Unity Accelerator 不可用,一致性检查器会在编辑器日志中打印警告。此外,如果您尚未设置 Unity Accelerator,Unity 会输出以下消息:
ConsistencyChecker - Cacheserver is not enabled
如果 Unity 无法连接到缓存服务器,它会输出以下消息:
ConsistencyChecker - Not connected to accelerator/cacheserver
您可以使用binary2text工具来检查Library文件夹以准确找出导入器生成的内容。这binary2text工具位于Data/Tools文件夹。例如:
./Data/Tools/binary2text ./myProject/Library/Artifacts/84/8490a5ed35a4361d679e6055a386969e output_file
哈希值是资产的内容哈希值。要查找报告的不一致以及检查期间生成的内容,请参阅编辑器日志。