
比如说上面的站位及对应的层级关系,这时在不改变zIndex的情况下右3去攻击左1会出现以下情况

为了解决上述问题,我尝试在右3开始移动之前就设置其zIndex = 1,这样右3的在攻击时不会压到左2。
但是右3有个移动的过程,如果我先改变了层级,就会出现这种情况

实际游戏中,情况远比这个复杂,战场上会有10个人物,站位不确定,还有各种特效,光环等,如果要比较正确的处理层级关系,必须给每个元素动态修改zIndex,这样既麻烦又耗性能,因为改变zIndex会引起节点的重新排序,dc也会变,本来战斗就比较吃性能,这么处理得不偿失。目前项目是根本没有动态处理这个层级关系的,只在初始化的时候根据站位修改了zIndex
请问大家是怎么优雅地处理这个问题呢?
创建一个最上层的战斗层,战斗时候动画都在战斗层播放
用另外一个相机渲染试试
目前是这样做的,特效是在比人物高的层级,也尽量是那种大范围的,没有跟目标模型绑定,看着也还行,只是人物贴的近时会有遮挡问题
在右三接触左一的一瞬间 切换层级
就是在触发攻击时才切换层级
用3d摄像机,正交投影就好了
卡牌纹理绑在quad上
1.如果有移动攻击,你单独拎出一个中间角色节点,攻击时角色源隐藏,显示刷新好的中间角色节点
2.给数据model上记录每个坑位的worldPos, 所有的特效 buff 你都可以分层放置,可确保位置对应又不用操心层级问题,特效buff放在较高层
3.剩下的就是设计好关键事件的自动通知了,角色死亡或者其他装填了了,自动通知各类特效,buff之类的做出变化
用这个对性能有影响吗
只要不是几十上百张牌就没什么影响