2dx老用户,create新手,查了文档只有setSiblingIndex接口表示children数组位置,怎么实现之前用y坐标作为zorder来实现地图中实时遮挡关系的
节点发生移动或者节点插入时遍历节点所在的节点树,判断当前节点和节点树上各个节点的y坐标大小,就能找到要插入的位置了
还有更好的实现么,地图上我有几百颗树和建筑,每帧都要遍历所有,然后插入,效率会很低吧,之前的每帧设置下移动的节点zorder=y坐标就很清晰
之前好像是因为zorder性能低删了,以后会把这个加回来
可以用二分查找试试
谢谢,想了下,大部分是固定不变,只有玩家和怪物会动,提前按序排好,按二分查找,如果位置不需要变可以不重排,感觉还行,另外问下,这个数组底层如果频繁插中间,后面会全拷贝挪位影响性能不
如果还有其他方案,欢迎大佬们继续留言,感谢,看到个 Sorting组件,但需要 SpriteRenderer不知道适不适合这个2D场景
全拷贝挪位是什么?
二分查找几百个节点,性能没问题的
就算你有1000个节点,在一个有序的数组中,最多只要10步
就是类似C语言数组那种,插入0位置,则原来的0位置挪到1位置,1位置挪到2位置,99999位置挪到100000位置
更新节点树确实挺消耗性能的,但是还好,我记得setSiblingIndex的性能比zindex的高