2023/8/8
重叠子弹,伤害数字的处理
一帧之内进行多次普工,会导致有大量的子弹重叠在一起,极大的浪费性能,而且子弹命中敌人时,产生的伤害数字也会叠加在一起,由于伤害没有波动,导致伤害数字都是一样的,根本没必要生成那么多。
优化方案:对于伤害数字,每个伤害数字的产生是通过一个事件执行的,这个事件监听位于表现单元中,所以在表现单元中缓存一个储存了生成伤害数字数据的结构体,产生伤害数字的事件不再直接产生伤害而是给结构体赋值,结构体会在tick时产生伤害数字,无论这一帧收到了多少个事件,都只会储存一个伤害最高的数字,便这样就成功的将伤害数字限制在了一帧一个 。
对于子弹,每一下平a可能有多次发射子弹的行为,每个行为可能会发射多个子弹,目前只对子弹的多次发射行为进行了限制,在技能状态机进行tick的时候,如果一帧内多次进行tick发射行为,则后续的行为将不会产生真正的gameobject,但是逻辑单元和表现单元还是正常生成,只是不会在屏幕上生成相应的图形。这样便可以有效的避免生成多个重叠的子弹,白白浪费性能。