Cocos Creator 3D Cocos2d-x AnySDK Version: 1.10 NodePool NodePool 类型 模块: cccc.NodePool 是用于管理节点对象的对象缓存池。 它可以帮助您提高游戏性能,适用于优化对象的反复创建和销毁 以前cocos2d-x 中的 cc.pool 和新的节点事件注册系统不兼容,因此请使用 cc.NodePool 来代替。新...
Cocos Creator Cocos2d-x Version: 2.1 Pooling Pooling Creating and destroying node and component instance (with cc.instantiate and node.destroy during runtime is very inefficient and can cause frame rate to drop if there're too many of those going on. We recommend to only create node and ...
Defined in extensions/ccpool/node-pool.ts:98 public put (obj : Node) : void 向缓冲池中存入一个不再需要的节点对象。这个函数会自动将目标节点从父节点上移除,但是不会进行 cleanup 操作。这个函数会调用 poolHandlerComp 的 unuse 函数,如果组件和函数都存在的话。 输入参数 名称类型描述 obj Node - ...
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html const { ccclass, property } = cc._decorator; /** * 预制体对象池 * @author chenkai 2020.6.11 */ @ccclass export default class PrefabPool { /**对象池列表 */ private static poolList = {}; /** * ...
一、Cocos Creator 节点池的基本原理是什么? CocosCreator 是一个游戏开发引擎,它提供了节点池(Node Pool)的功能,用于管理和重用游戏中的节点对象。节点池的基本原理如下: 创建初始节点:在游戏初始化阶段,你可以创建一组初始节点对象并加入节点池。这些节点对象可以是游戏中常用的对象,如敌人、子弹、粒子等。
一、Cocos Creator 节点池的基本原理是什么? Cocos Creator 是一个游戏开发引擎,它提供了节点池(Node Pool)的功能,用于管理和重用游戏中的节点对象。节点池的基本原理如下: 创建初始节点:在游戏初始化阶段,你可以创建一组初始节点对象并加入节点池。这些节点对象可以是游戏中常用的对象,如敌人、子弹、粒子等。
publicinit():void{……this._fishPool=newNodePool();……} 销毁时 publicmyDestroy():void{……this._fishPool.clear();this._fishPool=null;……} 提供一个方法用于创建Fish privatecreateFish():MyFish{let fishNode=this._fishPool.get();if(!fishNode){fishNode=instantiate(this._myFishPrefab);}...
通过开发经验给初学者对一些cocos creator2.0+的Api做一些深入的讲解,帮助初学者更好的学习cocos creator,更快速开发小游戏。 效果体验图如下 image.png 我们可以看到我们在未使用对象池(cc.NodePool)的时候,如果我们创建子弹特别多,那我们游戏的性能会显著的降低,为了解决这个问题我们引入了对象池的使用(cc.NodePool)...
摘要节点的创建(cc.instantiate)和销毁(node.destroy)操作是非常耗费性能的。如果制作有大量敌人或子弹需要反复生成和被消灭的动作类游戏时,需要使用对象池。 环境cocos creator 2.4.3 编辑工具HBuild X 像这样的的项目: 子弹,障碍物,敌人都可以使用对象池 ...
import { _decorator, Node, Prefab, instantiate } from 'cc'; function createObjectPool(prefab:Prefab, initialSize:number) { const objectPool = []; function get() { if (objectPool.length > 0) { return objectPool.pop(); } else {