BUG反馈:3.0预制体Layer层级问题

image
我试着去修改预制体的Layer层级,但不管如何修改,始终会回到UI_2D层级,3.0是不支持这样修改了么

试过再生成预制体的时候,修改他的层级,但还是会变回UI_2D

我重新制作了一个新的预制体,只要他变成预制体,层级就会被修改成UI_2D,请问这个有什么办法解决么

你好,这是一个迁移的脚本引擎的问题。
你可以打开项目中的migrate-canvas.ts文件:
image

然后在上面:

import { EDITOR } from 'cc/env';

再改一下这段代码:
image

if (!EDITOR) {
    cc.Node.prototype.setParent = function(value, keepWorldTransform) {
        setParentEngine.call(this, value, keepWorldTransform);
        if (!value) return;
        // find canvas
        let layer = getCanvasCameraLayer(this);
        if (layer) {
            this.layer = layer;
            setChildrenLayer(this, layer);
        }
    }
}

这样是可以修改了,但用代码生成的预制体,还是会出现这个问题

代码生成的,如果SetParent到一个Canvas底下,你是想不和那个Canvas的Layer一样?

是的,请问这样有什么方法做到么

你可以删除这个migrate-canvas.ts文件,这个是为了兼容以前的UI使用,如果删除后对你项目没有影响,完全可以直接删除~

还有一个问题,删掉之后我发现我自定义的Laber层级不会被渲染到,请问这个怎么解决呢

需要Camera的Visibility要钩上你自定义的Layer

已解决,十分感谢您的帮助

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