难道真的只有把BattleSence改成perfab是唯一的出路?
引擎切换场景在H5上面是直接销毁掉< canvas >画布组件,创建新的< canvas >,很黄很暴力的做法,早期也是各种浏览器不兼容
我们也碰到类似的问题,即使在prefab和node卸载并destroy之后调用releaseAll(),频繁在prefab面板之间切换的时候内存释放也不及时,容易崩溃。
尽量节点共用,对象池等等使用,不要频繁创建prefab,一旦创建了节点,就不要着急去释放,UI组件一定要手动写多复用,比如list组件很多人直接用layout来做太愚蠢的做法。
非要重复造轮子?
你应该没有释放引用
/**
* 释放子游戏资源目录
*/
releaseDirs(config, sources) {
if (sources) { //如果有传入释放资源的目录
for (const key in sources) {
const dir = sources[key];
var deps = cc.loader.getDependsRecursively(dir);
cc.loader.release(deps);
}
cc.sys.garbageCollect();
}
},
最好连prefrab都少用,用也少放点东西。prefrab实例化的时候贼卡,效率很低
请教下,问Layout做的问题是在哪里?
结构没问题 建议从图片纹理下手 这可能是个突破点
这么大型的项目 至少处理工具都有自己的一套了吧 千万别用ScrollView 这是个巨坑
native项目嘛?
是的,原生项目
ScrollView 和 tableview 我们都有用,有啥坑?
直接将item放在功能模块prefab本身,然后clone?
你好!我在文档中没找到releaseDirs的方法,请问是releaseResDirs吗?
另外config和soureces具体应该传入什么?可以看看一下完整的示例吗?再三感谢!
哈哈 确实,我们项目一路走来 最终还是采用了一个场景
不懂帮顶,顺便问下思维导图是用什么软件画的,样式我很喜欢
项目中是否有用到匿名函数?
如:
cc.director.getScheduler().schedule(function(dlt) { ..... }, this, interval, !this._isRunning);
MindNode,for mac
谢谢!