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 