cocos 3.8.2版本NodePool中poolHandlerComp的使用问题

先写出我的使用方法。

//初始化对象池,Test是当前类的名称,包含unuse和reuse方法
this.nodePool = new NodePool("Test"); 
this.nodePool.put(this.testNode);
this.testNode = this.nodePool.get(this.testNode);

//Test类中的方法
unuse() {
        console.log("unuse");
}
reuse(args: any) {
        console.log("reuse");
}

按理来说get和put的时候会触发reuse和unuse方法,但是并没有打印log。

对于reuse和unuse的实现接口_extensions_ccpool_node_pool__IPoolHandlerComponent是私有接口无法继承,也看了关于NodePool源码,如果传入类或者组件名内包含reuse和unuse应该就会触发,但是不知为何不生效。

刚用ccc不是很熟悉,麻烦各位大佬分析下问题所在,感谢。

现在想到的方案是基于NodePool自己封装一个对象池管理器,在put和get的时候分别触发reuse和unuse,但是既然官方已经实现了相同功能这么做又觉得有些画蛇添足。

自己顶一下

实操,有调用啊image image

啊这,也是3.8.2版本吗?我再试试。

我看你的好像是3.7.1?我换个版本试试,不会是3.8的bug吧…

试过了,3.8.2也是一样有效

(帖子被作者删除,如无标记将在 24 小时后自动删除)

代码就那么三句,应该是你那边操作有问题吧,testNode节点没挂Test脚本?

还真是…操作的Node上必须有对应类,我还以为是调的是当前对象上的。感谢提醒。

看引擎源码 image image

解决了就行

提前看源码了,但是没注意是obj上获取…话说怎么在ide上直接看源码?我都是去github上看的,是用了什么插件么。

直接引擎安装目录看的image image

学到了,感谢 :+1: