
在一般情况下使用正常,频繁回收利用,就会报错。代码报错入口在 var item = this._pool.get(data);
断了一下,

node._components 是个null。
完整报错信息
求大大指导下正确写法

在一般情况下使用正常,频繁回收利用,就会报错。代码报错入口在 var item = this._pool.get(data);
断了一下,

node._components 是个null。
完整报错信息
求大大指导下正确写法
这个你看下文档 上面有详细用法。
createEnemy: function (parentNode) {
let enemy = null;
if (this.enemyPool.size() > 0) { // 通过 size 接口判断对象池中是否有空闲的对象
enemy = this.enemyPool.get();
} else { // 如果没有空闲对象,也就是对象池中备用对象不够时,我们就用 cc.instantiate 重新创建
enemy = cc.instantiate(this.enemyPrefab);
}
enemy.parent = parentNode; // 将生成的敌人加入节点树
enemy.getComponent(‘Enemy’).init(); //接下来就可以调用 enemy 身上的脚本进行初始化
}
是参考这种写法,我只是稍微修改了下,当对象池不够的时候,我是先将节点丢到缓冲池中,然后再从缓冲池里面取
我也遇到了这个问题,楼主解决了吗?
你这个问题,我遇过,后来我解决了,不是引擎的问题。
我现在遇到一个超级无敌的问题,也是nodePool的问题,游戏玩的越久,Node里面的spriteframe丢失了。
不用NodePool 就好了