3.4.2下 NodePool回收节点的时候没有清理透明度


操作流程是把一个带有UIOpacity组件的节点设置为某个实验节点的父节点
一秒后用NodePool回收节点并重新get出来放到Canvas下,可以看到实验节点是半透明的

感觉是引擎缓存了某些渲染数据来提高效率,但是在回收节点的时候没有标记为脏

以下是demo
NewProject.zip (1.3 MB)

有木有官方的人来看看,吱一声

NodePool 的回收和复用行为是要自己定义的,需要在创建时传递一个对象池管理组件,组件实现下列 Interface

interface IPoolHandlerComponent extends Component {
    unuse (): void;
    reuse (args: any): void;
}

这样你可以在 unuse 或者 reuse 里面自己做组件状态的重置

我可能没描述清楚问题

我并没有修改实验节点的透明度,而是修改了他父节点的透明度,在实验节点被回收后就变成透明的了

大佬还在关注这个问题么

尝试更新到 3.4.2 应该是没问题的

好的,我去试试

刚刚试了下,3.4.2依然有问题

官方是不是觉得这不是个bug

继续反馈,万一要安排修复了呢

继续反馈,万一要安排修复了呢

继续蹲个官方的人

已经建立了 issue 在跟了

嘿嘿,终于等到了

https://github.com/cocos/cocos-engine/pull/10416
可以合并这个 pr 试试

感谢关注,顺便问一下,这个会合并到下个版本吗

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。