< Return to Video

Colliders - Unity Official Tutorials

  • 0:00 - 0:02
    碰撞體(Collider)是遊戲物件的元件之一
  • 0:02 - 0:06
    它可以讓所依附的遊戲物件
    對其它碰撞體產生碰撞行為
  • 0:06 - 0:10
    而那些遊戲物件必須有剛體(Rigidbody)元件
  • 0:10 - 0:13
    碰撞體有不同的形狀與類別
  • 0:13 - 0:16
    在場景視圖內它們會以綠色外框形狀顯示
  • 0:16 - 0:31
    它們有這些主要的形狀
    球形, 柱形和方形
  • 0:33 - 0:35
    如果需要更複雜的形狀有兩個方法
  • 0:35 - 0:40
    你可以用多個幾何物件
    將它們的碰撞體放入不同的物件
  • 0:40 - 0:43
    最後在階層裡結合成為新的碰撞結構
  • 0:43 - 0:51
    舉例來說, 這個工作檯由許多不同的
    碰撞體放在各部位組成一個碰撞結構
  • 0:51 - 0:54
    另外一個方式是使用網格碰撞體
  • 0:54 - 0:58
    網格碰撞體會和網格的形狀相同
  • 0:58 - 1:03
    右邊的這個工作檯並沒有碰撞體
    因為它使用了網格碰撞體
  • 1:03 - 1:09
    我們不建議使用網格碰撞體
    因為網格碰撞體是依照網格形狀所產生
  • 1:09 - 1:16
    所以可能會造成太複雜的碰撞結構
    進而影響遊戲的效能
  • 1:16 - 1:20
    這也是為甚麼通常
    我們會使用組合式碰撞體的原因
  • 1:20 - 1:24
    此外還有第三種方式
    來產生幾何形狀碰撞體
  • 1:24 - 1:30
    先簡化物件的模型
    然後將模型製作成網格碰撞體即可
  • 1:30 - 1:34
    在這個範例裡我們所用的是
    一個複雜的機器手臂
  • 1:34 - 1:40
    它擁有很複雜的網格
    但我們並不希望它的網格碰撞體如此複雜
  • 1:40 - 1:48
    所以我們建立了第二組簡化的網格模型
    然後用這些簡化的模型製作網格碰撞體
  • 1:48 - 1:53
    像是這個機器爪的網格
    比我們為它產生的網格碰撞體還要複雜
  • 1:54 - 1:56
    這是用兩個FBX檔來完成
  • 1:56 - 2:02
    一個是原始的機器手臂
    和簡化過的幾何模型
  • 2:02 - 2:06
    然後我們在每一個子物件裡
    都加入了網格碰撞體
  • 2:06 - 2:09
    然後將簡化過的幾何模型
    拖曳到對應的網格碰撞體的網格(Mesh)
  • 2:09 - 2:15
    這樣一來,我們就可以達到碰撞的需求
    同時也避免效能的問題
  • 2:16 - 2:22
    當碰撞在遊戲引擎裡發生時
    碰撞體會呼叫OnCollisionEnter事件
  • 2:22 - 2:29
    在這個場景我們的球體物件
    附有一個球形碰撞體和剛體
  • 2:29 - 2:32
    剛體有重量(Mass)和重力(Gravity)屬性
  • 2:32 - 2:36
    當我播放時, 球體物件會掉落
    並碰到其他物件
  • 2:37 - 2:40
    我們的方體物件附有一個方形碰撞體
  • 2:43 - 2:47
    而在掉落的球體上我們加入了這個程式腳本
  • 2:48 - 2:50
    這個程式腳本進行了三個碰撞事件的檢查
  • 2:50 - 2:52
    碰撞進入(OnCollisionEnter)
  • 2:52 - 2:53
    碰撞持續(OnCollisionStay)
  • 2:53 - 2:55
    和碰撞結束(OnCollisionExit)
  • 2:55 - 2:59
    當這些事件被呼叫時我用Debug.Log語法
    在控制台(Console)寫入資訊
  • 3:00 - 3:06
    提示進入、停留和離開的訊息
  • 3:10 - 3:12
    所以當我們檢視控制台內容時
  • 3:12 - 3:17
    你會先看到碰撞進入
    接下來碰撞持續了一陣子, 最後碰撞結束
  • 3:17 - 3:22
    如果我們將遊戲暫停
    我們可以詳細的檢視這個範例
  • 3:22 - 3:24
    當我單步執行每一幀
  • 3:26 - 3:30
    你可以看到當碰撞開始時
    控制台顯示了碰撞進入的訊息
  • 3:30 - 3:32
    代表OnCollisionEnter事件剛被呼叫
  • 3:33 - 3:37
    當我繼續後換OnCollisionStay被呼叫
  • 3:37 - 3:43
    控制台顯示了碰撞持續的訊息
    因為兩個碰撞體還保持在碰撞的階段
  • 3:43 - 3:52
    直到兩個碰撞體不再有碰撞行為
    OnCollisionExit事件就會被呼叫
  • 3:53 - 4:00
    要注意的是,如果要觸發碰撞(OnCollision)
    兩個碰撞的物件之中一個必須有剛體元件
Title:
Colliders - Unity Official Tutorials
Description:

more » « less
Video Language:
English
Duration:
04:02

Chinese, Traditional subtitles

Revisions