3.1.1子节点destroy,父节点removeFromParent,控制台输出警告invalid buffer pool handle

添加如下脚本,拖到场景,运行就会输出警告invalid buffer pool handle

import { Component, Node, _decorator } from "cc";

const { ccclass } = _decorator;

@ccclass("TestDestroy")
export default class TestDestroy extends Component {
    onLoad(): void {
        let parent = new Node("parent");
        this.node.addChild(parent);
        let child = new Node("child");
        parent.addChild(child);
        this.scheduleOnce(() => {
            child.destroy();
            parent.removeFromParent();
        }, 1);
    }
}
  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:macosx

  • 重现概率: 100%

感谢反馈,按照你这个脚本,我可以复现问题了,我看一下啥问题。

child.destroy好并不会从父节点中移除,调用parent.removeFromParent();时就回去移除child,此时就会去清理poolHandle,正常来说destroy应该也要从父节点中移除吧,2.4.4destroy也是这么处理的,但是他不需要处理poolHandle所有没有警告

哈哈,我总是看到这个警告。不过我从来没有管过它

有没有结果呢?

在使用child.destory()会在下一帧destory这个child
而使用parent.removeFromParent() 这个会去操作 child的状态。从而导致这个提示。