缓存服务器常见问题        

我的缓存服务器 (Cache Server) 数据库大小是否会随着导入和存储越来越多的资源而无限增加?

缓存服务器 (Cache Server) 将自动移除长时间未用的资源(当然,如需再次使用这些资源,则将在下次使用时重新创建这些资源)。

缓存服务器是否只可与资源服务器一起使用?

缓存服务器对于源/版本控制系统而言是透明的,因此,我们不会限定您使用 Unity 的资源服务器。

哪些更改会导致需要重新生成导入的文件?

Unity 准备导入资源时,将生成所有源数据的 MD5 哈希。

对于纹理,这包括以下几个部分:

  • 源资源:  “myTexture.psd” 文件

  • 元文件: “myTexture.psd.meta”(存储所有导入程序设置)

  • 纹理导入程序的内部版本号

  • 所有 AssetPostprocessors 版本号的哈希值

如果该哈希值不同于缓存服务器 (Cache Server) 上存储的值,则将重新导入资源,否则将下载缓存的版本。客户端 Unity 编辑器仅在需要时从服务器获取资源 - 资源发生变更时,不会推送至每个工程。

如何处理资源 (Asset) 相关性?

缓存服务器 (Cache Server) 无法处理相关性问题。 Unity 的资源管道不会处理相关性概念问题。 这样创建是为了避免资源之间出现相关性问题。AssetPostprocessors 是一种常用技术,用于根据您的要求自定义资源 (Asset) 导入程序。 例如,您可能需要根据对应的名称或标签将网格碰撞器 (MeshColliders) 添加至 fbx 文件中的一些游戏对象 (GameObjects)。

使用 AssetPostprocessors 介绍相关性也非常简单。 例如,您可能会使用资源旁边的文本文件数据将其他组件添加至导入的游戏对象。 缓存服务器 (Cache Server) 不支持此功能。 如果您需要使用缓存服务器 (Cache Server),则必须去除工程文件夹中其他资源的相关性。 由于缓存服务器 (Cache Server) 完全不了解您后处理器中的相关性,无从得知发生的变更,因而使用资源的旧缓存版本。

实际上,有很多执行资源后处理的方法可方便您高效利用缓存服务器。您可以使用:

  • 导入资源的路径

  • 资源的任何导入设置

  • 资源后处理器传送给您的源资源,或从其中生成的任何数据。

处理材质时是否会出现任何问题?

修改现已存在的材质可能会引发问题。 使用缓存服务器 (Cache Server) 时,Unity 将确认材质的引用得到维护。 由于后处理调用将不会被调用,通过缓存服务器 (Cache Server) 导入模型后,材质目录无法更改。 使用和不使用缓存服务器 (Cache Server) 导入的结果可能不相同。 最好的解决方法是,决不修改磁盘上已存在的材质。

是否存在任何服务器不会缓存的资源类型?

有少数几种资源数据是服务器不会缓存的。 事实上,没有任何资源是通过缓存脚本文件获取的,因此,服务器将忽略这些资源。 此外,系统将使用应用程序本身将 3D 建模软件 (Maya、3D Max 等) 使用的原生文件转换为 FBX。 当前,资源服务器既不会缓存原生文件,也不会缓存导入过程中生成的中间 FBX 文件。 但是,通过从建模软件以 FBX 导出文件并将这些文件添加至 Unity 工程,将有助于您创建游戏。

,