Unity游戲中關於傷害范圍的計算


1、純數學計算

  范圍計算 + 方向計算:

    先將不在傷害范圍的敵人排除掉,再計算處於傷害范圍並且角度正確的敵人。

  以上的計算是以人物的中心來計算的, 所以這中方式就有些局限性了,比如:一個四足怪物,只有四足可以對敵人產生傷害,這個時候如果還是以怪物的中心來計算的話,明顯就正確了。

  所以這種方式只適合處理簡單的情況。

2、動畫關鍵幀 + 碰撞體回調

  這種方式會有一定的性能消耗,但是如果是動態的創建Collider的話,性能消耗應該不會很大。什么意思?就是在某個關鍵幀上動態的創建出一個Collider,然后去檢測與該Collider產生碰撞的敵人,進而計算對敵人造成的傷害。

  如果存在傷害衰減的需求的話,就需要逐個計算敵人的距離了,然后再計算造成的傷害。

3、動畫關鍵幀回調 + 范圍檢測(Physics.OverlapSphere

  揮武器的動作到某一幀的時候,計算武器位中心的范圍內有木有怪物,有的話,就給這個目標添加傷害。

4、動畫關鍵幀回調 + 線性檢測(Physics.Linecast

  在武器的運動軌跡上選幾個關鍵點,然后在這幾個點上做線性檢測。這個比較適合做拿斧子橫向砍一刀等類型的傷害。 

參考網址:

  https://blog.csdn.net/Monzart7an/article/details/24435843

  https://www.cnblogs.com/jqg-aliang/p/4605944.html

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM