Unity + Spine 碰撞檢測


通過自己在開發的游戲過程中發現有幾種做碰撞檢測的方法:
1. 只在unity中添加collider
這是最簡單的一種。在Spine中編輯好骨骼動畫以后導入到unity中,讓后spawn bone就可以得到在Spine中的骨架,然后在需要的骨骼上加上collider。這種方法對於簡單的碰撞應用還可以,但是復雜一點就不好用了,比如在某一幀需要去掉碰撞,這就做不到。而且在編輯collider的時候對於復雜多變的bone也很不好勾勒碰撞區。

2.在Spine中添加專用的碰撞骨骼
在Spine中可以專門多創建一些額外的骨骼(attach上一張純色矩形圖片作為碰撞區域)用來作為碰撞檢測用,這樣就可以在K動畫的時候在每一幀縮放這些骨科老調整碰撞局域,如果將骨骼縮放為0那么那一幀實際上就沒有碰撞局域了。
當然這種方法也有缺點,這樣的碰撞區域雖然會隨着骨骼縮放,但是只能用矩形的collider,這樣勢必沒有那么精確。
注意:在做骨骼的時候,要注意骨骼的起點要落在純色圖片的中心,這樣在unity中添加collider的時候,collider位置才會正確,否則會有偏移。
3.使用Spine中的bounding box
這是目前我找到的最好的碰撞解決方案。在Spine中可以給貼圖添加上bounding box,這個box其實是一個多邊形,可以在K動畫的時候影藏,也可以隨着貼圖的骨骼縮放,甚至還可以像mesh一樣對他的頂點進行拖拽來調整邊框,這種方法非常靈活,精確,在導入到unity后可以通過bouding box來自動生成polygon collider。


免責聲明!

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



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