对象池如何一次取多个对象

背景:刚开始学习creator,自己制作了一个控制赛车躲避其他赛车的游戏(如下图)

问题:之前是用的数组管理障碍物,每次生成3个,障碍物移动到屏下就removeFromeParent然后重新生成。但是这种方案有个问题,等前3个障碍物都移动到屏下才会重新创建新的障碍物,这中间会有一段时间空白期,屏幕上是有没有障碍物的。而且频繁的removeFromeParent节点和instantiat预制体感觉性能也不太好。看文档有一个nodePool对象池,试着用了一下,目前的效果是每次取出一个对象,屏幕上只会有一个障碍物,请问怎么实现一次取出多个对象,或者有其他解决方案嘛

http://www.s3tu.com/images/2020/09/22/f3f313ec4236bd3af793d4f4bf6ab027d232.jpg

学过循环吗

我现在是一个对象池里面3个预制体对象,我需要一次生成三个障碍物,循环创建三个对象池的话,那一个对象池里面只放一个预制体对象嘛

开始就for循环插入3个预制体对象到对象池,在for循环取,这样做不到你要的效果吗

对象池,是方便复用相同节点的。
你要么就把三个不同节点联合成一个复杂的节点,用类型字段区分和实现拆分效果;
要么就用3个对象池。

或者说挂3个不一样的脚本在同一个节点上,要用哪个就取哪个脚本,这样也能只用一个对象池到达你要的效果。

你可看看

看你这个有点像scrollview动态加载
我是先将可见范围内item固定,超出可见范围item重设坐标和数据,感觉比频繁入池出池效率高(猜的:grin:

按你这逻辑,3个障碍物都移到屏下时全部都移动到屏幕上面就行了