标签:Cocos obj Creator poolHandlerComp handler NodePool ._ var pool
版本:2.3.4
参考:
cocos的NodePool提供了一个数组,保存和获取数组内对象,并在保存和获取时可执行对象上的unuse和reuse方法。
使用相对简单,看看cocos教程即可。
主要是在获取对象池中实例时,不存在实例,则返回null,不会自动新建。 新建的代码得自己写。
cocos对象池源码
CCNodePool.js:
cc.NodePool = function (poolHandlerComp) { this.poolHandlerComp = poolHandlerComp; this._pool = []; }; cc.NodePool.prototype = { constructor: cc.NodePool, size: function () { return this._pool.length; }, clear: function () { var count = this._pool.length; for (var i = 0; i < count; ++i) { this._pool[i].destroy(); } this._pool.length = 0; }, put: function (obj) { if (obj && this._pool.indexOf(obj) === -1) { // Remove from parent, but don't cleanup obj.removeFromParent(false); // Invoke pool handler var handler = this.poolHandlerComp ? obj.getComponent(this.poolHandlerComp) : null; if (handler && handler.unuse) { handler.unuse(); } this._pool.push(obj); } }, get: function () { var last = this._pool.length-1; if (last < 0) { return null; } else { // Pop the last object in pool var obj = this._pool[last]; this._pool.length = last; // Invoke pool handler var handler = this.poolHandlerComp ? obj.getComponent(this.poolHandlerComp) : null; if (handler && handler.reuse) { handler.reuse.apply(handler, arguments); } return obj; } } }; module.exports = cc.NodePool;
标签:Cocos,obj,Creator,poolHandlerComp,handler,NodePool,._,var,pool 来源: https://www.cnblogs.com/gamedaybyday/p/13092339.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。