// BulletManager.js let myBulletPool = new cc.NodePool('Bullet'); //建设子弹工具池 let newBullet = myBulletPool.get(this); // 传入 manager 的实例,用于之后在子弹剧本中接纳子弹 // Bullet.js reuse (bulletManager) { this.bulletManager = bulletManager; // get 中传入的打点类实例 } hit () { this.bulletManager.put(this.node); // 通过之前传入的打点类实例接纳子弹 }
第六步:排除工具池假如工具池中的节点不再被需要,我们可以手动清空工具池,销毁个中缓存的所有节点:
myPool.clear(); // 挪用这个要领就可以清空工具池
当工具池实例不再被任那里所引用时,引擎的垃圾接纳系统会自动对工具池中的节点举办销毁和接纳。但这个进程的时间点不行控,别的假如个中的节点有被其他处所所引用,也大概会导致内存泄露,所以最亏得切换场景或其他不再需要工具池的时候手动挪用 clear 要领来清空缓存节点。