位置: 编程技术 - 正文

Unity3D AsssetBundle加载效率比较

编辑:rootadmin

推荐整理分享Unity3D AsssetBundle加载效率比较,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

首先,简要介绍一下加载AssetBundle的主要两种方式,分别是new WWW(url)和WWW.LoadFromCacheOrDownload,两种方式的具体用法,自己查官方API,这里不再叙述

new WWW是单纯地把AssetBundle加载到内存

WWW.LoadFromCacheOrDownload是把AssetBundle写入到缓存中,然后在需要加载AssetBundle时,再从缓存中读取AssetBundle,达到一个加速效果,而且只在内存中保存一些必要的缓存指针信息,因此非常省内存,目前我在的公司都是用这种加载方式

这次主要是比较这两种方式的加载效率

Unity3D AsssetBundle加载效率比较

测试结果:

1.在PC上,两种方式的效率,第一次只相差大约%,可能PC端的硬盘有高速缓存和读写速度相对较快的原因,而在移动端,效率则相差2倍之多2.第二种方式在二次读取时,速度很快3.推荐使用第二种方式

总结:根据上面的比较,可以看出WWW.LoadFromCacheOrDownload虽然在第首次加载时,略慢于new WWW,但在之后的二次加载(如退出游戏程序,再次进入游戏,也算二次加载),WWW.LoadFromCacheOrDownload会带来更加快的加载速度和更加节约内存,即使是一百多兆的资源,全部加载完成,也大概只占不要MB的内存,因为Unity给它们都做了硬盘缓存,开辟了大量的磁盘空间来换取消耗大量内存的代价。并且在加载完AssetBundle后,实例化的速度和new WWW的无任何差异。WWW.LoadFromCacheOrDownload完胜!

其他注意点:

使用WWW.LoadFromCacheOrDownload加载时,若磁盘空间已满并所有的缓存文件都在使用中,则WWW.LoadFromCacheOrDownload会调用new WWW()方式,把资源载入内存中。较好地解决了磁盘不足的情况在缓存中,Unity进行资源识别的唯一方式是资源名称&#;版本号,因此无论是何种资源,资源名称不能相同对缓存的所有操作都在Caching类中,仅提供简单的查询和清除操作

unity3d shader之Julia集和Mandelbrot集绘制美丽图案 (二) 之前写过一篇Mandelbrot集的代码在这里这次主要写Julia集的Mandelbrot集内的每一个点都对应了一个连通的Julia集,Mandelbrot集合外的点则对应了不连通的Julia

unity3D+opencv环境配置 需要opencvsharp链接:

Unity3D架构系列之- FSM有限状态机设计(六)(总结篇) 由于最近一直赶项目进度,没时间写,昨晚终于项目终于完成了,空闲下来,做一个总结。在这一篇中主要是把前五章一起总结一下,以及通过举例演

本文链接地址:https://www.jiuchutong.com/biancheng/378805.html 转载请保留说明!

上一篇:Unity广度优先搜索子物体(广度优先搜索输出路径)

下一篇:unity3d shader之Julia集和Mandelbrot集绘制美丽图案 (二)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络