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

標籤: , , ,

—Rigidbody – 剛體—

想必第一次看到這詞的人一定會問:「剛體是什麼?」這東西不像碰撞器與觸發器那樣可以從字面上來解讀,想知道完整解釋的話可以查查維基百科。

大致上剛體就是現實世界的「物體」,他帶有「重力」「摩擦力」「反彈力」等等各種力的運算,能如現實物體般運動的物體就稱之為「剛體」,當遊戲物件被添加Rigidbody(剛體)時就會擁有以上所說的物理效應。

剛體可以從工具列中的Component -> Physics 2D -> Rigidbody 2D中加入,也可以從屬性視窗的Add Component -> Physics 2D -> Rigidbody 2D加入,要注意的是剛體與碰撞體一樣分為2D(Rigidbody 2D)與3D(Rigidbody )。

在小飛兵身上加入後直接運行,會發現小飛兵就這樣掉下去了。

這是因為小飛兵已經受到重力的影響,會自動往下掉落。

在這邊我新增一個2D Sprite物件,並給予這張黑色圖片,調整他的大小與位置並給他加上Box Collider 2D當作是地面。

再來也給小飛兵加上Box Collider 2D,如果有照著先前的教學做,在滑鼠點擊事件時應該已經加上Box Collider 2D了。

再次運行,會發現小飛兵掉在黑色方塊上,而不會繼續向下掉了

如果讓黑色方塊旋轉,會發現小飛兵就這樣滑下去了

除此之外,兩個帶有剛體的物件互撞時,會互相反彈彈開,反彈的程度會依據材質的反彈力而不同,由於截圖不好表達在這邊就不多示範了,可以自行再製(Ctrl+D)幾個小飛兵讓他們掉在差不多的位置試試。

Rigidbody 2D的屬性

  • Mass 質量
  • Linear Drag 線性阻力:
    • 物體在移動過程中所受到的阻力
  • Angular Drag 角阻力:
    • 物體在旋轉過程中所受到的阻力
  • Gravity Scale 重力倍率
    • 物體所受重力的倍率,數值愈大重力愈強
  • Is Kinematic 運動學
    • 物體將不受到剛體的物理運動影響,也就是關閉剛體的功能
  • Interpolate 差值:
    • 物體的運動與畫面更新率之間的平滑處理
      • None:不做平滑處裡
      • Interpolate:物體運動會在畫面更新之前做平滑處理
      • Extrapolate:物體運動會在畫面更新之後做平滑處理
  • Sleeping Mode 睡眠模式:
    • 為了節省電腦效能,處理靜態的(未運動)剛體會進入睡眠以減少效能
      • Never Sleep:永不睡眠
      • Start Awake:剛體最初是清醒的,進入靜態後才會睡眠
      • Start Sleep:剛體最初是睡眠的
  • Collision Detection 碰撞偵測:
    • Discrete:離散的
    • Continuose:連續的
    • 不太清楚這兩種的差別,有待高人指點
  • Constraints 約束
    • Freeze Position 凍結移動:有X軸跟Y軸兩個可以勾選,被勾選的軸將不受到物理影響
    • Freeze Position 凍結旋轉:只有Z軸可以勾選,勾選後物體將不會旋轉

[ Unity 2D ] 教學 #08 – 碰撞事件



相關文章

教學 #10 – 小總結●小飛兵 射擊遊戲實作(一)... 已經到第10篇教學文了,這次我們將實作出一款可以遊玩的射擊遊戲,將會用到之前所有教學文所教的東西。 ※注意本篇內容較多,請小心食用 這篇教學文也可以算做是一個複習,接下來我們會把之...
遊戲程式入門 #01 Start 與 Update 當我們在 Unity 中新增一個腳本 (Script) 時,程式碼中會待有預設的 Start( ) 與 Update( ) 函數,這兩個函數代表的涵義分別是「開始」與「每次更新」 嘗試加入以下程...
教學 #13 – Camera(攝影機) 攝影機是遊戲中最重要的一項遊戲物件,它決定了玩家畫面中所能看見的遊戲畫面 在每一個新的場景(Scene)中一定會預設一個Main Camera,其意思就是「主要攝影機」,點擊Main C...
教學 #00 – 安裝與事前準備 Unity是目前主流的開發引擎之一,他強大的地方在於免費提供給開發者使用,並且有良好的跨平台發行能力。雖然Unreal 現在也開放免費使用,但Unity先進入市場,使得網路上有大量參考資料,非常適合新...