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
