先不考虑长条形斜侧视角墙面。
是否需要每个排序节点每帧都需要做一下setSiblingIndex?
这段代码放在排序管理器的update里面,傻傻的运行着。效果没问题,排序都对。只能这么做么?
超过一两千,电脑上都开始不能满60了。看上去是逻辑延迟,就是这的原因了。
private orderInDynamicGroup() {
for (let i = 0; i < this.node.children.length; i++) {
let groupNode = this.node.children[i];
if (groupNode.name.startsWith('dynamic')) {
let units = groupNode.getComponentsInChildren(OrderUnit);
units.sort((a, b) => {
return -a.node.position.y + b.node.position.y;
});
for (let j = 0; j < units.length; j++) {
units[j].node.setSiblingIndex(j);
}
}
}
}
虽然根据游戏中的墙面将地图分成了多个区域,排序物体需要先进区域排序组,然后每个区域里面运行上面的排序,虽然减轻了一些排序基数,而且解决了墙面的遮挡问题,但也是挺慢的。
我找到商店里面有个2d排序的,它的里面是否也需要不断的进行类似的运算?
