Unity中CacheServer的使用

作者: koo叔 分类: Unity3D 发布时间: 2017-12-28 23:15 编辑

一.CacheServer是什么?
CacheServer是Unity提供的一个高速缓存服务器,用于存储导入到项目中的资源数据。分为Local和Remote两种模式
二.CacheServer解决的问题
Unity会将导入项目中的资源自动存储成Unity内部使用的格式,这个过程需要比较多的时间。
1.当在团队中工作时,有人改变数据重新导入时,所有其他人也需要再次导入一次。
2.当切平台时如从android切到ios平台。所有资源也需要重新导入
如果项目非常大,这些操作往往非常耗费时间
CacheServer 会缓存导入的资源数据,大大减少导入资产所需的时间。
缓存的内容包括:
资源文件本身
导入设置
资源导入版本
当前平台
CacheServer会检测这几项是否有更改,如果上面有任何更改,则资源被重新导入,然后再存起来。否则,它将从缓存服务器下载。CacheServer还可以跨多个项目共享资源导入(也就是说,导入工作在一台机器上完成,结果与其他人共享)。一旦设置了CacheServer,这个过程是完全自动的,因此没有额外的工作需求。它只会减少导入项目所花费的时间而不会妨碍你的工作。
三.如果搭建CacheServer
1.下载CacheServer, Download Archive,选择对应的适当的版本下载
2.下载后解压如下:
cacheserver.png
选择和自己操作系统对应的脚本执行,以mac系统为例执行后如下:
startcacheserver.png
实际项目中,CacheServer最好部署到一台存储非常大的可靠机器上(比项目本身的规模大得多,因为存储的导入资源将有多个版本)
四,使用CacheServer
CacheServer设置可以Unity > Preferences>CacheServer中找到。
CacheServer设置共有两种模式
local模式,存在自己本机的目录中,这种模式只能自己使用,而不能团队共享:
CacheServerLocal.png
Remote模式,团队开发推荐Remote模式,Remote模式如下:
CacheServerRemote.png
这里以刚刚上面搭建的地址为例,填入,然后Check Connection ,如果成功会显示Connection successful
五,如何使用
CacheServer设置好后,不需要特殊处理,当资源改变后,CacheServer会自动检测,存储。
如:当在笔记机器上修改一个图片的压缩格式:
formatpng.png
CacheServer的启动控制台会有如下信息输出:
cacheserverinput.png
证明CacheServer已经帮你把资源的改变自动存起来了,下次再导入该资源时会先从CacheServer取得,节省了导入时间
六,FAQ
1.随着越来越多的资源被导入和存储,CacheServer数据库的大小是否会无限增长?
CacheServer会自动删除一段时间内没有使用过的资源(当然,如果这些资源再次被使用,则在下一次使用中重新创建它们)
2.资源的哪些更改导致导入文件会重新生成?
当Unity即将导入一个资源时,它会生成所有源数据的MD5哈希值
所以当hash值不同时会重新导入,否则从CacheServer下载
3.如何处理资源的依赖项?
CacheServer不处理依赖项。
4.使用材质时有什么问题吗?
最好不要修改已经存在的材质。
5.有没有不被CacheServer缓存的资源类型?
脚本文件,3D建模软件(maya、3Dmax、等)生成的本地文件,FBX文件
参考:
https://docs.unity3d.com/Manual/CacheServer.html

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

你的email不会被公开。必填项已用*标注

更多阅读
标签云