一个神奇的bug

项目是用帧同步做的项目,之前做了一点战斗相关的功能,对于帧同步有一些认识。

一.宝箱对应的标识并没有消失

详细内容:接手新的空投改版任务,修改一个版本结束后,一直报第一圈第一个宝箱开启,场景中的模型消失,但对应的UI层的标识没有消失。

跟着下来是FixVec3转Vector3,再转FixVec3。数值已经和之前的完全不一样的。

反思为嘛之前没有出现转换出现的这样的问题,之前设计是方形的作为基本使用,当然数值上也是加上一个整数。

现在引入扇形,需要进行正弦余弦计算,小数点后保留6位,在转换后出现数值差异。以上图可见第3位上出现数值不同。

思考,是否可以避免使用FixVec3作为key,看了之前的代码确实难以改动。解决方案就是在原来类中加FixVec3存一份作为key值使用。

二.空投的模型,有莫名消失

详细内容:一直觉得是UI上没清理对应的标识,觉得是AOI管理上,把对应的模型删除,但是没有确认。和做AOI模块的同事沟通,也觉得不受影响。后来在空投箱子销毁的地方加Log,看了下调用栈,确实在视野处理的时候,把空投宝箱的模型删除了。在加了空投宝箱的标识后,问题修复了。

当初设计空投宝箱的时候,AOI并没有使用,后来处理视野里可以见得内容,并没有把空投宝箱算进去

三.总结反思

1.测试功能,没想清楚,明明可以改配置,快速测试,实际花了很多时间在等待过程。
2.因为是接手别人的功能修改,加宏看log,但是他个人的log代码,没有提交,自己打log重新看,比较聪明的做法是直接要一份他的log代码
3.和策划沟通,需要二次确认,有时策划听内容的时候,但是有没有认真听,很难确定,后期修改的,幸好代码基本没啥改动量。
4.关于帧同步的项目做视图和逻辑分离,注意一些数值转换后并不能再使用了。
5.如果新的功能开发,还是需要去沟通是否影响现有功能的内容。AOI管理了场景中的实体,空投的实体并没有被管理到。在处理的时候就删除了。

文章目录
  1. 1. 一.宝箱对应的标识并没有消失
  2. 2. 二.空投的模型,有莫名消失
  3. 3. 三.总结反思
|