2021年1月20日19:04:28
1 简介
Unity Cache Server,翻译过来就是Unity缓存服务器
1.1 缓存服务器の官方介绍
Unity 有一个完全自动的资源管线。每当修改 .psd 或 .fbx 文件等源资源时,Unity 都会检测到更改并自动将其重新导入。随后,Unity 以内部格式存储从文件导入的数据。
这种安排旨在使工作流程对于个人用户而言尽可能高效和灵活。但是,在团队中工作时,可能会发现其他用户可能会继续对资源进行更改,所有这些更改都必须导入。此外,在桌面和移动构建目标平台之间切换时,必须重新导入资源。因此,该切换对于大型项目而言可能需要很长时间。
在__缓存服务器__上缓存导入的资源数据可以大大减少导入资源所需的时间。
Unity 在每次导入资源时基于以下内容进行缓存:
- 资源文件本身
- 导入设置
- 资源导入器版本
- 当前平台
如果以上任何内容更改,Unity 都会重新导入资源。否则,Unity 从缓存服务器下载资源。
使用缓存服务器时,甚至可以跨多个项目共享资源导入(即,在一台计算机上完成导入工作,结果将与其他计算机共享)。
1.2 说人话
缓存服务器把项目资产缓存在服务器上,实现快速切换和共享:
当项目切换目标平台时,本地不用花时间转换,直接从服务器上拷贝下来用 😉
当其他同事新增了资源,本地不用花时间转换,直接从服务器上拷贝下来用 😉
2 缓存的原理分析
2.1 导入的过程
项目中所使用的资产,如模型、贴图、材质、声音、视频等等,这些资产在导入项目时,Unity会进行一系列的处理,而这些处理结果往往是不纳入版本管理范围的
- 生成对应的.meta文件,meta文件保存了资产之间的引用关系。
- 生成对应的设置,这些设置信息存放在ProjectSettings文件夹中。
- 引用的包信息存放在Packages文件夹中。
- 将一些资源转换后存放在Library文件夹中。
- 部分缓存信息存放在obj文件夹和Temp文件夹中。
2.2 目标平台的快速切换
当我们的资产导入到Unity时,这些资产本身并没有被改变,Unity会根据不同的目标平台,进行不同的处理后新生成一些文件,这些文件放置