creator 3.3 node没有zIndex属性了吗?那怎么改变渲染顺序呢?

creator 3.3 node没有zIndex属性了吗?那怎么改变渲染顺序呢?

setSiblingIndex呢

setSiblingIndex

不知道为什么关键字要改来改去

zIndex每次赋值,在引擎底层有个排序,浪费性能。可能也是为了性能,官方把该工作交给程序员,游戏卡不卡全看自己写代码实力。

这个只能设置节点在父节点中的顺序,我是做一个动画,衣服是在胳膊的上层,武器和胳膊在一层,现在武器一动就显示在衣服的下面了

这个只能设置节点在父节点中的顺序,我是做一个动画,衣服是在胳膊的上层,武器和胳膊在一层,现在武器一动就显示在衣服的下面了

getComponent(UITransform).priority
当然这个属性也标记为废弃了,但是现在还能用

这个关键字一致存在吧!!没暴露而已!哈哈

declare module "cc" {
    interface Node {
        /** 借助它实现2.x层级效果,直接赋值不会有任何效果 */
        zIndex: number;
    }
}
    /** 根据zIndex统一设置节点顺序(同一父节点,一帧最多只需调用一次) */
    public static setChildrenNodeSortByZIndex(parent: Node): void {
        if (!parent) {
            return;
        }

        let children = parent.children.concat();
        children.sort((a, b): number => {
            if (a.zIndex == null) {
                a.zIndex = 0;
            }
            if (b.zIndex == null) {
                b.zIndex = 0;
            }
            return a.zIndex - b.zIndex;
        });
        let maxIndex = children.length;
        for (const node of children) {
            node.setSiblingIndex(maxIndex);
        }
    }
1赞

谢谢,美术修改动画解决问题了

频繁sort排序,性能略低。

hh :11: