[SM] 雙城地圖,沿着小河走到一個位置附近的時候,腳下的河水就消失了。

問題描述:雙城地圖,沿着小河走到一個位置附近的時候,腳下的河水就消失了。 

代碼分析:整個地圖,按照橫縱網格劃分,當Player距離一個格子中心的距離,超過了格子的長度的時候,就Relase掉當前格子內的資源。比如100*100的地圖,每個格子10*10,當距離一個格子中心,長度爲10的時候,這個時候,距離這個格子邊緣,至少也是5以上,這時,就可以Relase掉改地圖內的資源。

問題在於,走到那個特定位置的時候,本來是要幹掉一個非Water資源(具體是啥類型忘了),但是卻把把Player所在格子下面的Water給幹掉了。去看了地圖編輯器,才發現,原來是所有的資源除了Water,有個全局唯一的IDCreator,Water自己還有個ID創建的邏輯。 導致,Water的ID與那個要刪除的資源的ID衝突了。根據ID尋找資源的時候,又沒有判斷資源類型。看樣子是當初想統一改成一個IDCreator,但是把Water漏了。

解決方案:

1. 統一使用一個IDCreator,現有所有地圖裏面的Water都要重新創建,來獲得不衝突的ID。馬上上線了,懶得動編輯器,也不想給美術找事了。
2. 卸載資源的時候判斷類型。這是個比較好的方式。

備註:

據說自由港重建的時候,裏面有很多動態物品,也遇到了類似的問題,當時復現規律沒找到,這下應該都解決掉了。

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