[ Unity 2D ] 教學 #06 – 碰撞器、觸發器、剛體(一)

標籤: , , ,

在Unity中,碰撞機制大致上有兩個重點:

Collider(碰撞器)、Trigger(觸發器)、Rigidbody(剛體)

這篇教學文中較多文字上的解說,若是Unity的新手建議好好耐心的看完,真的看不下去的話就直接跳到下一篇學習碰撞事件吧

—Collider – 碰撞器—

可分為2D(Collider 2D)與3D(Collider),在這邊只講解2D的碰撞器,碰撞器是控制遊戲物件碰撞範圍的元件,可以從工具列中的Component -> Physics 2D(物理)中加入。

也可以從屬性視窗的Add Component -> Physics2D 中加入

Collider 2D有以下幾種

  • Box Collider 2D 方形碰撞器
  • Circle Collider 2D 圓形碰撞器
  • Edge Collider 2D 邊緣碰撞器:
    • 碰撞體為一條線,2D中可作為地面的碰撞使用
  • Polygon Coliider 2D 多邊形碰撞器 :
    • 加入元件時會依照遊戲物件的Sprite自動形成不規則的碰撞體

Collider會影響到滑鼠點擊事件、碰撞事件,他的範圍可以不跟物件的圖片一致,在Scene畫面中遊戲物件周圍的綠色框線就是Collider的範圍,一個遊戲物件可以同時擁有多個Collider以組成不規則的形狀,但是2D與3D不能同時存在。

在上面的圖中可以看到很多重複的屬性,在這邊一次介紹

  • Edit Collider 編輯碰撞體:
    • 按下後會看到Scene視窗出現頂點,使用滑鼠左鍵拖曳即可更改碰撞體的大小,若是Edge Collider 2D或Polygon Collider 2D,點擊點與點之間的線可以新增頂點,按下Alt+左鍵可以刪除頂點。
  • Material 材質:
    • 關係到物件與物件互相運動時的摩擦力與彈力,可以在Project視窗中點擊右鍵 ->Create -> Physics2D Material來新增自定義的2D材質,在這邊還不會用到,不理他就可以了
  • Is Trigger 是觸發器:
    • 勾選後,這個物件的碰撞器就會成為一個觸發器,碰撞的範圍就會變成一個觸發區域,這意思是物件將不再帶有「碰撞」的功能,其他物件與其相撞時會「穿」過去,而不會「碰撞」在一起,可以做為遊戲事件的展開,如傳送點、角色走到觸發區就觸發劇情等等。
  • Used By Effector 使用效果:
    • 可以添加Effector元件使碰撞器有其他效果,如特定角度碰撞等等,由於這方面較複雜,暫時不多作介紹
  • Offset 偏移量:
    • 碰撞區域的中心點往X或Y軸偏移的幅度,修改這個值可以讓碰撞區域跟圖片在不同位置
  • Size(Box Collider 2D):
    • 碰撞器大小的倍率,只有Box Collider 2D有這屬性
  • Radius(Circle Collider 2D):
    • 碰撞器的範圍,只有Circle Collider 2D有這屬性

—Trigger – 觸發器—

在上面有提到,將Collider的Is Trigger勾選,就會使碰撞器變為觸發器,基本上與Collider一致,差別只在於不會觸發物理碰撞的效果,其他在畫面上是完全沒有差別的,但是Trigger在遊戲中十分重要又常用。

發覺上一篇教學文打得太長,所以決定太長的都分段一下,下一篇教學文將介紹Rigidbody(剛體)

[ Unity 2D ] 教學 #07 – 碰撞器、觸發器、剛體(二)



相關文章

教學 #02 – 基本的移動 在Unity中,所有與位置、旋轉、縮放相關的功能都由Transform這個組件控制 而transform這個屬性便是用來抓取遊戲物件(GameObject)上的Transform組件 以...
遊戲程式入門 #01 Start 與 Update 當我們在 Unity 中新增一個腳本 (Script) 時,程式碼中會待有預設的 Start( ) 與 Update( ) 函數,這兩個函數代表的涵義分別是「開始」與「每次更新」 嘗試加入以下程...
遊戲程式入門 #00 Unity腳本建立與HelloWorld!... 此為 Unity C# 遊戲程式入門系列教學文章,適合對遊戲程式設計或遊戲開發有興趣但對程式沒有基礎的人 前言 在筆者以前的自學過程中,常常出現「我很想學某件事,但我該如何開始呢?...
教學 #05 – 物件創造、物件銷毀 這次來講到物件創造與物件銷毀,我們繼續使用先前的小飛兵專案來教學,這次要做的功能是「按下鍵盤Z發射子彈」並且「子彈超過一定距離時銷毀」,在這次教學中會使用到先前的移動與鍵盤事件。 創造...