[ 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 – 碰撞器、觸發器、剛體(二)



相關文章

教學 #12 – Layer(層級) 另一個與Tag很像的東西叫做Layer,是層級、階層的意思,在Unity中與Tag有同樣的功能,但是Layer會牽扯到碰撞判定。 Layer的設定方式與Tag一致,位置就在Tag的右邊而已 ...
教學 #04 – 滑鼠事件、鍵盤事件 Unity中事件被簡化的十分方便,如同Start()與Update()一樣只要打上函數名稱就可以了。 滑鼠的相關事件中較常用的有以下幾種: OnMouseDown - 滑鼠點擊事...
基礎教學 #01 – 前置作業 ---Unity 多人連線 UNet 教學 #01--- 為了教學上的方便,在UNet系列教學文中會使用2D專案做展示,會以讓大家「快速入門」為主要目標 在開始寫Code之前,我們必須先了解Uni...
遊戲程式入門 #00 Unity腳本建立與HelloWorld!... 此為 Unity C# 遊戲程式入門系列教學文章,適合對遊戲程式設計或遊戲開發有興趣但對程式沒有基礎的人 前言 在筆者以前的自學過程中,常常出現「我很想學某件事,但我該如何開始呢?...