※中肯辭典
(註:有別於官方文件上的嚴謹說明,在此以工程師的角度來簡短說明此元素的特質與使用時機。)
使物件被賦予物理特性,可控制摩擦力、彈跳力、以及碰撞時產生的位移、縮放及旋轉等形變。常用的時機有實作自由落體、物體間的碰撞效果等。
在將物件拉入Hierarchy後,就能透過Add Component開始賦予物件Ridgidbody的特性,如這個例子裡的小雞。需特別注意的是:由於這是2D的專案,要記得選取Rigidbody 2D,別選錯了!
如果在加完這個要素後就直接按Play,你會發現:
小雞會自己永無止盡的下墜!!!!
這時我們就要來了解Rigidbody 2D裡比較常用的各項參數
●Gravity Scale
重力預設為1,是造成物體下墜的主因,可以先調到0。
(Unity有支援負數的重力值,所以如果在這個欄位輸入負數,物體就會往上飄!)
●Body Type
剛體的型態有分成Dynamic, Kinematic, Static三大類。
Dynamic:預設的型態,代表物體會受到重力、碰撞等物理條件的影響。
如:玩家要操作的角色。
Kinematic:完全不會受外力影響,但是可以對其他剛體發揮影響力。
如:遊戲場景裡的牆壁。
●Material
可以放入自訂的Physic 2D物理材質,針對摩擦力和彈跳力做特別的設定。這部分以後再帶來更多介紹。
●Mass
根據牛頓第二運動定律F=ma,在受到相同大小的力的狀況下,具有較大的質量的物體產生的加速度會比較小。
如:用手施一樣的力,去推1顆棒球vs推1顆大鐵球。
●Linear Drag
為物體設定位移時的摩擦力。
●Angular Drag
為物體設定旋轉時的摩擦力。
●Constraints
鎖住該物體在特定方向的位移及旋轉,以便於更符合遊戲設計的邏輯。
如:“打磚塊”中的板子只會左右移動,不會因為碰到牆壁就翹起來,這時就要把“Freeze Position”中的Y打勾。
Ridgidbody是讓遊戲動起來的關鍵元素之一,在學習的同時也可以自己拿幾款經典的小遊戲來分析:它們的遊戲裡有哪些剛體的運用?加強自己的理解程度!