接下來介紹Unity的基本關節系統(Joints)
在這個範例內包括了固定關節(Fixed Joint) 和彈簧關節(Spring Joint)
利用這兩種關節組成這樣的破壞鍊球
首先是固定關節 固定關節的原理很像階層裡的父子結構
關節會將物件鎖在一個世界座標 或鎖在一個連結的剛體
範例中我們把第一個圓體物件放在天花板 然後加入一個固定關節
這樣一來它就會被鎖定在該座標
固定關節還可以設定斷裂力道(Break Force) 和斷裂扭力(Break Torque)
斷裂力道與斷裂扭力是破壞關節 所需要的最小力量
當關節被破壞時 遊戲物件就可以再次自由移動
鍊球其他的圓柱要設定彈簧關節
彈簧關節的原理是
關節會嘗試移動到目標座標 即物件在場景裡的座標
而物件的剛體會將關節用一個連在錨點 的隱形彈簧將物件拖離目標位置
如果彈簧關節有連結剛體 那它的目標座標
會指向剛體所屬的遊戲物件 而不是一個世界座標
舉例來說, 二號圓柱體的目標
是一號圓柱體，而三號圓柱體
目標是二號圓柱體
開始移動時它們不是往原來位置移動 而是往那些圓體物件的錨點移動
錨點(Anchor)是關節的支點
是彈簧連接遊戲物件的位置
錨點在遊戲視圖內以橘色的圓點或方形來表示
彈性(Spring)參數代表彈簧的韌度 數值越高代表彈簧越緊或堅固
阻尼(Damper)設定關節動作放慢的速度 數值越高代表彈簧晃過頭的機會越小
最小距離(Min Distance)和最大距離(Max Distance) 設定彈簧活動的一個區域，用來限制彈簧長度
相同於固定關節 彈簧關節也有斷裂力道與斷裂扭力
你可以設定這些力道 來指定斷裂彈簧所需要的最小數值
最後是鉸鏈關節(Hinge Joints)
鉸鏈關節適合用在門這類的物件
鉸鏈關節跟彈簧關節有些參數相似 它的軸向就是旋轉軸向
在這個範例裡
我們在門加上了鉸鏈關節 然後將錨點設定在X軸的1
代表它的錨點從中心移到了邊緣
同樣的, Unity的關節是以橘色來表示
你可以看到一條橘色的直線 而那就是鉸鏈關節的位置
這裡的軸向(Axis)代表關節以哪個軸向為支點
我們將支點設定到Y軸 這樣只要加上簡單的腳本它就會像是真的鉸鏈
腳本裡我們讓門被點擊後 加入往Z軸後推的力量
往後推的語法是 -transform.forward
在AddForce的教學影片裡的範例 門的物件在加入力量後應該會飛出去
但現在門的物件有了鉸鏈關節
當我我們對門施加力量 他就會以支點為軸心進行旋轉
所以不管我們對門施加幾次力量 它都不會壞掉
就像彈簧關節一樣 我們可以加入一些彈簧的特徵
首先將使用彈簧選項(Use Spring)打勾 然後設定彈簧的彈性, 阻尼和目標位置即可
有別於彈簧關節
鉸鏈關節還有馬達(motor)和限制(limits)設定
馬達設定讓你的關節可以加上速度 就像旋轉門一樣
目標速度(Target Velocity)設定關節的旋轉速度
力道(Force)是要達到目標速度的值
假如你勾選了自由選轉(Free Spin) 力道只會用來幫關節加速而不會減速
限制設定是用來限制關節的動態 比如一般的門
最小(Min)與最大(Max) 是用來設定關節可以移動的旋轉角度
最小回饋(Min Bounce)與最大回饋(Max Bounce)
用來設定當關節轉到限制角度時所作的反應
跟其他關節一樣 鉸鏈關節也有斷裂力道與斷裂扭力
舉例來說, 如果我們在斷裂力道 設定了一個較低的值
當我們在門上施加力量時 就會使鉸鏈關節斷裂
注意到門並非直接向後飛去
而是從鉸鏈關節點被扯斷