求助,游戏基本完成,遇到性能问题

小弟做了个游戏,已经完成了,但是在手机上卡卡的,(浏览器没一点问题)求大神帮忙。 游戏里一直有接近一千个节点(单色精灵,同一个prefab生成)滚动(由右向左),向左滚出屏幕时扔进对象池,再从右生成,屏幕上每次最多显示两三百个,其余的在屏幕外。但是glvert看到,屏幕外的也在渲染,怎么让屏幕外的不渲染,我想应该性能会提高点。
第二个卡的地方就是 已经滚出屏幕的节点扔进对象池时会卡,不得已,我用定时器,一两秒内扔一百多个对象,还是会卡。不知道怎么做。
第三个想问的就是,我用的都是单色精灵,如果换成atlas图集里的一张图片做的prefab,会批次渲染吗?会不会好点。
求助,卡卡的游戏没法发布啊。

就类似于弹幕游戏那种,请问这种手机端卡卡的问题有什么解决办法。

屏幕外的想不渲染可以把 active 设为 false。

扔进对象池的对象如果很复杂的确有卡顿的可能,只能分批添加,或者设置一个上限,添加到上限了就丢弃一部分

单色目前这种情况下没有批处理,可以用图集试试,有批处理的,另外,如果只是纯色可以试试看 Graphics 来画

嗯,卡顿的主要原因找到了,节点比较多,一个父节点下有一百多个子节点跟着滚动,当向左滚出屏幕时短时间内扔进对象池或者销毁的对象太多而卡顿,
今天试了用父节点画graphics,不用那么多子节点确实一点都不卡,但是问题来了,画出来的点没办法清除,只有clear函数,会清除所有绘制。强烈建议graphics出类似橡皮擦的函数。我在原来绘制的黑色点上用透明色重绘了一次,事实上只是黑色叠加透明色,还是黑色…

帮你 @jjyinkailejj

graphics 不会加这么复杂的功能了,你可以把 graphics 画到 render texture 上,再对 render texture 做相应的处理?

1赞

我建议还是需要修改的时候清除所有,重新绘制把,这样其实消耗也不大