位置: 编程技术 - 正文
推荐整理分享Unity3D AsssetBundle加载效率比较,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
首先,简要介绍一下加载AssetBundle的主要两种方式,分别是new WWW(url)和WWW.LoadFromCacheOrDownload,两种方式的具体用法,自己查官方API,这里不再叙述
new WWW是单纯地把AssetBundle加载到内存
WWW.LoadFromCacheOrDownload是把AssetBundle写入到缓存中,然后在需要加载AssetBundle时,再从缓存中读取AssetBundle,达到一个加速效果,而且只在内存中保存一些必要的缓存指针信息,因此非常省内存,目前我在的公司都是用这种加载方式
这次主要是比较这两种方式的加载效率
测试结果:
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有限状态机设计(六)(总结篇) 由于最近一直赶项目进度,没时间写,昨晚终于项目终于完成了,空闲下来,做一个总结。在这一篇中主要是把前五章一起总结一下,以及通过举例演
标签: Unity3D AsssetBundle加载效率比较
本文链接地址:https://www.jiuchutong.com/biancheng/378805.html 转载请保留说明!友情链接: 武汉网站建设