当场景中实例化多个预制体(700多个)界面操作就特别卡

  • Creator 版本: 2.4.9

  • 目标平台: 微信小游戏

  • 重现方式:吃猪大战

  • 首个报错:第4关

  • 之前哪个版本是正常的: web浏览器端 测试 时正常

  • 手机型号: 真机 iphone8p

  • 手机浏览器: 微信小游戏

  • 编辑器操作系统:

  • 重现概率: 100%

当我的场景中实例化700多个预制体实例化的node节点(注意是一个预制体for循环实例的多个node) 的时候操作器来就很卡,在微信小游戏中。
但是在开发时在浏览器端测试时没这个现象!
1. 该现象只在真机测试中有非常卡顿的问题,在web浏览器以及微信开发者工具中没有
2. FPS :60左右, drawcall :2274左右 ,Triangle:4700,TextMem (36.9),Buf Mem(0.37)
image

1赞

这不是很正常吗,上微信小游戏肯定要优化啊

关键是 这个要怎么优化啊前辈,打包后在微信小游戏端是无法调试的, 只能在开发环境下 web端去调试,但是web直接开发测试也没有什么问题,drawcall 、fps都正常

drawcall 、fps大概是多少,还有实例化是瞬间一起进行的吗

image

您看看 如上图,实例化是for循环中进行的, 我这个关必须实例化这么多实例呢,代码如下:

1666928725355

由于预制体就着一种,而且是一个界面需要同事加载这么多个实例,比如要画面中同时出现100个敌人,这个也用不到nodepool

试试延迟 不要一下子700个

分帧加载吧,一下子加载700个,手机肯定卡了

就你这个小游戏,要700个预制体?我还以为是大游戏呢

是一个预制体 实例化了700个node,不是700个预制体

请问小游戏上 drawcall 和 fps 还有多少呀 ?

应该和这个没关系吧?因为实例化的时候没有卡顿,就是加载完了,在点击的时候node移动之类的都挺卡顿的

FPS59 , drawcall 21
image
1666928725355

请问这个是放在微信开发者工具里面跑的吗 ?

不是,在真机 iphone8s上 测试的, 在微信开发者工具上 我测试没这个问题, web浏览器上也没有

:rofl:
IPhone 手机呀, 难怪了, 估计在安卓上也不会卡,
请问这个是加载那 700 个的时候就卡一段时间吗 ? 还是会一直卡 ?

你微信小游戏上打开看看,第四关的时候,初始化这些实例并不卡,就是初始化完了, 我点击 touch事件要移动 node 就很卡了

大佬还有我需要描述一下,for循环初始化这个预制体的时候没觉得卡,就是加载完了,要点击touch事件 移动node的时候就很卡,当预制体初始化的数量较少时 不存在这个问题(比如第一关)

代码写的不好

:grinning:
一句话概括太泛泛了 ,就算代码写的不好也需要找到优化的下手处啊,
目前是web浏览器么有问题,微信开发者工具测试也没问题

测完了, 果然和我猜测的一样, 安卓第四关完全不卡, 还是比较流畅的,
您不如 for 循环创建 700 个一样的图片节点然后测试下,
再直接在场景里面加入 700 个 node 节点, 开始游戏时再设置 active = true 对比下,
我感觉可能和 iPhone 有关