Cocos Creator v2.4.0-rc.9 测试帖(正式版已发)

何时支持 x86_64 啊~~~~? 搞的现在只能用1.10.3版本。。 或者有什么快速的方式自己加吗。。。

释放掉了,一旦资源新建完成,就不再持有文件了

native版如果我想下载新的bundle后删掉旧版本的档案有什么比较好的方法吗?

虽然在#169楼里官方有回复可以使用cacheManager

不过我看了cacheManager的相关接口后,发现清理cache的方法也就很简单粗暴的只有 clearCache() 跟 removeCache(url) 而已

clearCache直接就把下载的文件给全删了,下次loadbundle就只能重下载

removeCache要带的url则是下载的网址

感觉不是很容易使用啊

好的,谢谢。

请问
api文档里的:

releaseUnusedAssets
释放所有没有用到的资源。详细信息请参考 releaseAsset

没有用到,是怎么理解?
preload但还没有load的算不算没有用到?

没有用到是根据引用计数来判断的。引用计数为0的就是没用到,比如你现在用cc.resources.load动态加载了一个资源,但是这个资源你没有调用 addRef。那么他的计数就是0,调用 releaseUnusedAssets 的时候就会被释放掉.[quote=“zzzz.leung, post:499, topic:92303”]
preload但还没有load的算不算没有用到?
[/quote]

preload 不一样,preload 是预加载文件,仅仅只是文件,没有反序列化的,所以压根不是asset。所以releaseUnusedAsset 对preload是无效的,因为preload的时候还不是资源

可以尝试使用 cacheManager.cleanLRU,会按照最后使用的时间删除一些不常用的资源,每次调用这个方法会清理1/3的缓存

我这边是重写了CCTexture2D的_getGFXPixelFormat接口,直接return RGBA4444 内存减少大约是50M 并没有达到一半

感谢,已修复,会合到正式版

我没复现出这个问题诶

场景引用的资源计数是1,勾选自动释放,并且跳转场景之后计数不会变化,应该没有释放掉,不知道是设计成这样的还是bug

搭个车,领导们看看我的问题

浏览器下,websocket都可以连接,android 版本不可以链接,websocket is not defined.
另外在windows模拟器下,http post 返回数据过大,会获取不了返回报文:

应该是新场景正好也用到了这个资源,所以 新场景 的引用 +1,变成了2,老场景的释放 -1,又变回了1

有个疑问
将一个Bundle放到远程, 可能这个Bundle的资源相对较大, 比如有100M
如果完全依赖远程下载单个资源, 可能会等待很多异步过程
有没有办法打包的时候将默认的Bundle打入包中, 后续只有md5不一样的资源会从远端读取

你可以拓展一下url的解析过程,类似这样

但其实我不太建议这么做,因为同样的 bundle 存在两个位置,不太好维护,也不是很容易理解,尽量每个 bundle 就一个地方存储。

你这种情况其实应该在业务层面上将 容易变动的资源不容易变动的资源 拆分在不同bundle中,不容易变化的放在本地,比如说初始场景,这种一个版本更新一次就好,容易变化的放在服务器上,随时更新。这样就比较好,尽量别让容易更新的和不容易更新的混合在一起

正式版什么时候会发布啊?

目前计划是下下周,现在还在测试

谢谢回复,我试试。

新场景是空白的,上面只挂了一个脚本,输出cc.assetManager

是因为第一次编译没有勾选,native socket,后面再勾选也没有用了,必须删掉biuld重新构建