一個神奇的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管理了場景中的實體,空投的實體並沒有被管理到。在處理的時候就刪除了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章