3.3.2创建新节点SetParent性能问题

  • Creator 版本: 3.3.2

  • 目标平台: 谷歌浏览器 98.0.4758.109(正式版本) (x86_64)

  • 重现方式: let node: Node = instantiate(this.prefab); director.getScene().addChild(新node);

  • 首个报错: 误报错 执行耗时

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

用prefab创建新的Node,添加到场景中。此操作耗时160ms。
想咨询下有没有替代操作或者其它解决方案解决添这个性能问题。在低端机中,setParent会导致大量的卡顿、掉帧。 更换版本可以解决这个问题吗?

既然是新node那你没办法避免,就是消耗这么大

1赞

归根揭底是逻辑上的问题。递归创建了属于是。子节点在onload时会加载子节点的子节点。

这个在华为手机,不是很低端的手机,也会明显的卡顿,有什么优化方案吗?

1在加载场景预先创建适合数量的对象。2 不使用active隐藏暂时不需要的对象,而是设置对象的位置到一个绝对不会在摄像机中出现的坐标,以达到不用active而隐藏对象的目的。

嗯,想到用这种方式了,我们的场景物品太多,有几十上百种,如果按照这种,要提前加载许多资源

可以在内存和时间上做些取舍。或者找找别的方法。比如在启动页加载一部分、加载页 加载一部分,游戏内加载一部分。将总的加载市场分成多个段落。 :drooling_face: