Unity3D: Cache Mechanism

Caching

 Unity3d,assetbundle,webplayer平台下,使用cache模式进行加载时,第一次指定了一个BundleURL,加载成功(且不考虑位置偏差问题),然后删掉assetbundle.unity3d,这个文件,运行程序,依然能够加载,很奇怪,经过调查走访发现,是因为缓存的缘故,存放在如下位置:

C:\Users\Administrator\AppData\LocalLow\Unity\WebPlayer\Cache,将其中的文件删除后,就加载不了了,之前一直怀疑是遗留在了内存中,使用了各种清除和回收的方法,均未奏效。原理是,第一次加载后,就生成了缓存,然后不管你BundleURL指向的文件是否存在,只要assetname一致,url未改变,就直接调用缓存中的文件,而不管你是否重新生成了这样同名的一个assetbundle。

Clear the Cache:(转载)

U3D插件一个比较令人吐血的功能是,一旦游戏的资源文件下载失败,可能你永远都无法再次进入游戏。目前官方没有给出比较好的方案,只能通过手工清除缓存。对于普通玩家来说,手工,就意味着痛苦。本人做了一个简单的命令行工具,只要双击,就能帮你解除痛苦。

首先,关闭浏览器(IE或者360)

难后,按照以下步骤操作

1:打开记事本,复制以下带到记事本中,另存为clear.bat

(目前只支持xp/win7系统和ie,360浏览器,其他系统和浏览器将陆续更新)

remxp系统

@echooff

c:

echo"正在清理Unity缓存..."

cd%userprofile%\LocalSettings\Application Data\Unity\WebPlayer

rd/s /q cache

echo"清除Unity缓存完成!"

echo正在清除IE缓存文件,请稍等......

del/f /s /q"%userprofile%\Local Settings\Temporary Internet Files\*.*"

echo清除IE缓存完成!

 

rem win7系统

@echooff 

echo"正在清理Unity缓存..."

c:

cd%userprofile%\AppDataLocalLow\Unity\WebPlayer

rd/s /q cache

echo"清除Unity缓存完成!"

 

echo正在清除IE缓存文件,请稍等......

del/f /s /q"%userprofile%\AppData\Local\Microsoft\Windows\TemporaryInternetFiles\*.*"

echo清除IE缓存完成!

2、双击运行clear.bat

新发现了一个unity中清除cache的方法,那就是:Caching.CleanCache。有时不用的话会造成加载以前的bundle,导致bug。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值