Unity 2d碰撞检测
生活随笔
收集整理的這篇文章主要介紹了
Unity 2d碰撞检测
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
碰撞檢測
- Collider2d 射線檢測函數
- Raycast 與 Cast 函數
- Overlap 檢測函數
- 參數
- PhysicsScene2D 類檢測函數
- Physics2D 類檢測函數
- MonoBehaviour 類碰撞檢測函數
Collider2d 射線檢測函數
Raycast 與 Cast 函數
Raycast 是發射一條射線
Cast 是把整個碰撞器作為射線投射出去
enable = false; 的情況下無效
返回值 是射線碰撞到碰撞器的數量
Overlap 檢測函數
判斷碰撞器范圍內的其他碰撞器。此函數的檢測效率比Raycast 與 Cast 高的多。但是檢測結果只返回Collider2d信息,沒有RaycastHit2D信息
參數
- direction 射線方向
- results 射線碰撞到物體的信息
- contactFilter 碰撞器過濾 (cast)
默認值:
useTriggers 讀取 Physics2d中的queriesHitTriggers 配置
layerMask 讀取當前Collider2d的層級 - distance 射線發射距離
默認值:
無限距離 - layermask 檢測的layermask (Raycast)
默認值:
allLayer - ignoreSiblingColliders 是否忽略與當前物體剛體下的碰撞器
默認值: true
如果設置為true,要注意的是如果當前Collider沒有剛體, 那么沒有附近剛體的Collider都將檢測不到
PhysicsScene2D 類檢測函數
BoxCast CapsuleCast CircleCast Linecast Raycast 等檢測函數。
向場景中投射射線,僅返回碰撞到的第一個交點。
PhysicsScene2D 實例 通過Scene.GetPhysicsScene2D獲取
Physics2D 類檢測函數
投射各種形狀的射線,進行射線檢測比如 Physics2D.Raycast , Physics2D.BoxCast 參數與上面 Collider2d 類中的射線檢測函數類似。區別是Physics2D需要自行創建 射線的形狀。
MonoBehaviour 類碰撞檢測函數
- OnCollisionEnter2D OnCollisionStay2D OnCollisionExit2D碰撞器,進入,停留,退出等函數想要觸發這三個函數必須滿足以下條件
1.自身必須是碰撞器
2.對方必須是碰撞器
3.自身或者對方是 Dynamic 類型的剛體 - OnTriggerEnter2D OnTriggerStay2D OnTriggerExit2D
觸發器,進入,停留,退出等函數
觸發的條件
1.自身或者對方是觸發器
2.自身或者對方是剛體
總結
以上是生活随笔為你收集整理的Unity 2d碰撞检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时间格式化hh:mm:ss和HH:mm:
- 下一篇: x61s到手、博客访问量稳定增长