通过loadRes加载进来的DrgonBones 播放没问题,但是relaseRes会报错,uid.normalize不存在。有示例,麻烦帮忙看一下,这个实在找不到原因。求助
版本1.5.1 web端和模拟器均不可以LoadRes.zip (476.1 KB)
getDepnedsRecursively 不是搭配 releaseRes 用的。前者能返回任意一个资源,后者只能释放 resources 目录下的资源,不应该配合使用……
你应该改用 cc.loader.release(deps);
谢谢您的回复。使用release已经观察到内存释放了。
还有个问题请教一下…
DrgonBones我动态加载后放到prefab 生成的节点上,如此循环很多个,然后想要完全释放掉dragonBones的资源。
我先是吧节点 destroy掉,然后再根据 加载路径 cc.loader.release掉。然后调用gc。这样只观察到内存下降了一点点,有时候都不会下降,如果我创建一个是可以观察到了释放的。
请问是什么原因导致释放不掉,或是释放不完全。
正确的释放loadRes加载进来的drgonBones的流程是怎样的?
好的。谢谢回复,我自己也试出来啦。release是可以释放的。
现在对release 和 releaseRes还是很混乱。不知道什么情况用什么。。异步加载的资源我是都放到resources 下了。。
还想请教个问题,我这边游戏ui比较多,且不考虑web端,现在分了三个场景,但是发现切换场景内存并没有明显释放,
越切场景内存越高,应该是由于其中一个场景有比较大的drgoonBones释放不完全导致,前期架构的也不是很好。
写了一个测试发现异步加载的prefab在创建节点后 destroy掉 再调用gc会有明显的内存释放,
我想用prefab做整个游戏的所有的UI界面,整个游戏只用一个secene.不去切换场景。
大概是如下流程:
添加一个弹出窗,就通过异步加载进来的prefab去动态创建一个node,添加到主场景上去。
然后在弹窗关闭后 node调用destroy释放掉,对应异步加载进来的Prefab也release掉。
通用的弹窗就做成常驻节点,把prefab理解成之前cocosStudio导出的csb这样去写。
感觉这样写完全背离了ccc的推荐开发方式…有隐隐的担忧
想请问一下这样会存在什么问题。或者这样做的话我该注意些什么?
releaseRes 仅仅是配合 loadRes 用的,参数一致,是 url,仅能释放一个资源。
release 能释放任何资源,参数是 deps 数组或者单个资源对象。
切场景本来就不会主动帮你释放资源
确实有不少团队是这样做的,你应该注意 Prefab 之间共享的资源
感谢回复!游戏做好了我会发到论坛,
亲,在吗,我也遇到你的一模一样的问题,您解决了吗?能指点一二不,纠结了好久了,也是释放路劲不对,提示去res目录,实际在library目录



