Mr.Yuan Mr.Yuan

苟正其身矣,于从政乎何有?不能正其身,如正人何?

目录
Cocos creator 通用对象池实现
/    

Cocos creator 通用对象池实现

通用对象池类

export default class Pool {
    constructor() {}

    private static __p = {}

    /**
     * 对象池名,
     * 值为 对应的类名, pool 会调用相应类下的 unuse,reuse 方法
     */
    public static get(name: string, key?: any): cc.NodePool {
        if (!key) {
            if (!this.__p[name]) this.__p[name] = new cc.NodePool(name.toString())
            return this.__p[name]
        } else {
            if (!this.__p[name]) this.__p[name] = {}
            if (!this.__p[name][key]) this.__p[name][key] = new cc.NodePool(name.toString())
            return this.__p[name][key]
        }
    }

    /**
     * 对象池名,
     * 值为 对应的类名, pool 会调用相应类下的 unuse,reuse 方法
     */
    public static create(name: string, key?: any): cc.Node {
        const p = this.get(name, key)
        if (p.size() >= 1) return p.get()

        const _l = p.get()
        const _node = cc.instantiate(_l)
        p.put(_l)
        return _node
    }
}

使用说明

const _node: cc.Node = Pool.create("name", "obj1")


标题:Cocos creator 通用对象池实现
作者:K
地址:https://pala.icu/articles/2021/09/02/1630593482021.html