何时支持 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重新构建