setSiblingIndex仅能更改同级节点的渲染顺序

通过setSiblingIndex 设置节点的渲染顺序之后, 但是节点对点击事件的捕获还是原先的顺序。如何同时更改节点的事件捕获优先级。

在cocosCreator编辑器中预览时,默认是问题描述的情况, 但是在左边的层级管理器中点击被更改的节点后,会同时同级对象的事件捕获顺序。 这个点击层级管理器 是调用/刷新了什么。

改用UITransform组件的_priority属性吧

如果想要原生版本生效, 需要对engine\cocos\2d\framework\ui-transform.ts中做如下修改

        private static _sortChildrenSibling (node) {

            const siblings = node.children;

            if (siblings) {

                siblings.sort((a: Node, b: Node) => {

                    const aComp = a._uiProps.uiTransformComp;

                    const bComp = b._uiProps.uiTransformComp;

                    const ca = aComp ? aComp._priority : 0;

                    const cb = bComp ? bComp._priority : 0;

                    const diff = ca - cb;

                    if (diff === 0) return a.getSiblingIndex() - b.getSiblingIndex();

                    return diff;

                });

     +          // https://form.cocos.org/t/topic/138996

     +          if((node as any)._setChildren)

     +          {

     +              (node as any)._setChildren(siblings);

     +          }

            }

        }
1赞