Cocos Creator API

1.5.x

Cocos Creator is the game engine for the future.

NodePool

Module: cc

cc.NodePool is the cache pool designed for node type.
It can helps you to improve your game performance for objects which need frequent release and recreate operations

It's recommended to create cc.NodePool instances by node type, the type corresponds to node type in game design, not the class, for example, a prefab is a specific node type.
When you create a node pool, you can pass a Component which contains unuse, reuse functions to control the content of node.

Some common use case is :
1. Bullets in game (die very soon, massive creation and recreation, no side effect on other objects)
2. Blocks in candy crash (massive creation and recreation)
etc...

Properties

poolHandlerComp Function | String

The pool handler component, it could be the class name or the constructor.

There are no properties that match your current filter settings. You can change your filter settings in the index section on this page. index

Methods

constructor
(
  • [poolHandlerComp ]
)

Constructor for creating a pool for a specific node template (usually a prefab). You can pass a component (type or name) argument for handling event for reusing and recycling node.

name type description
poolHandlerComp optional Function | String

!#en The constructor or the class name of the component to control the unuse/reuse logic. !#zh 处理节点回收和复用事件逻辑的组件类型或名称。

examples:

properties: {
   template: cc.Prefab
 },
 onLoad () {
// MyTemplateHandler is a component with 'unuse' and 'reuse' to handle events when node is reused or recycled.
   this.myPool = new cc.NodePool('MyTemplateHandler');
 }

size ( )

The current available size in the pool

clear ( )

Destroy all cached nodes in the pool

put ( )

Put a new Node into the pool. It will automatically remove the node from its parent without cleanup. It will also invoke unuse method of the poolHandlerComp if exist.

examples:

let myNode = cc.instantiate(this.template);
  this.myPool.put(myNode);

get
(
  • params
)
Object | Null

Get a obj from pool, if no available object in pool, null will be returned. This function will invoke the reuse function of poolHandlerComp if exist.

name type description
params Any

!#en Params to pass to 'reuse' method in poolHandlerComp !#zh 向 poolHandlerComp 中的 'reuse' 函数传递的参数

returns:

type: Object | Null

examples:

let newNode = this.myPool.get();

There are no methods that match your current filter settings. You can change your filter settings in the index section on this page. index