-
接下來介紹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)
-
用來設定當關節轉到限制角度時所作的反應
-
跟其他關節一樣
鉸鏈關節也有斷裂力道與斷裂扭力
-
舉例來說, 如果我們在斷裂力道
設定了一個較低的值
-
當我們在門上施加力量時
就會使鉸鏈關節斷裂
-
注意到門並非直接向後飛去
-
而是從鉸鏈關節點被扯斷