Unity提供了下面的關節組件:鉸鏈關節(Hinge Joint)、固定關節(Fixed Joint)、彈簧關節(Spring Joint)、角色關節(Character Joint)、可配置關節(Configuration Joint)。編輯器
本節簡單介紹這些組件的含義。orm
鉸鏈關節(Hinge Joint)由兩個剛體組成,該關節會對剛體進行約束,使它們就好像被鏈接在一個鉸鏈上那樣運動。它很是適用於對門的模擬,也適用於對模型鏈及鐘擺等物體的模擬。對象
一、添加鉸鏈關節組件遊戲
依次打開菜單欄中的【Component】->【Physics】->【Hinge Jont】,便可爲所選擇的遊戲對象添加鉸鏈關節組件。ci
二、屬性get
·Connected Body:鏈接剛體。爲關節指定要鏈接的剛體,若不指定則該關節將與世界座標系相鏈接。it
·Anchor:錨點。剛體可圍繞錨點進行擺動,這裏能夠設置錨點的位置,該值應用於局部座標系。io
·Axis:軸。定義剛體擺動的方向,該值應用於局部座標系。form
·Use Spring:使用彈簧。勾選該項,則彈簧會使剛體和與其連接的主體造成—個特定的角度。擴展
Spring:彈簧。當Use Spring參數開啓時此屬性有效。
Spring:彈簧力。該項用於設置推進對象使其移動到相應位置的做用力。
· Damper:阻尼。設置對象的阻尼值,數值越大則對象移動得越慢。
Target Position:目標角度。該頂用於設置彈簧的目標角度,彈簧會拉向此角度,以度爲測量單位。
·UseMotor:使用馬達。勾選該項,馬達會使對象發生旋轉。
·Motor:馬達。當Use Motor參數開啓時,此屬性會被用到。
Target Velocity:目標速度。設置對象預期將要達到的速度值。
Force:做用力。設置爲了達到目標速度而施加的做用力。
Free Spin:自由轉動。勾選該項,則馬達永遠不會中止,旋轉只會越轉越快。
·Use Limits:使用限制。勾選該頂,則鉸鏈的角度將被限定在最大值相最小值之間。
·Limits:限制。當Use Limits開啓時,此屬性將會被用到。
Min:最小值。設置鉸鏈能達到的最小角度。
Max:最大值。設置鉸鏈能達到的最大角度。
Min Bounce:最小反彈。設置當對象觸到最小限制時的反彈值。
Max Bounce:最大反彈。該頊用於設置當對象觸到最大限制時的反彈值。
·Break Force:斷開力。設置鉸鏈關節斷開的做用力。
·BreakTorque:斷開轉矩。沒置斷開鉸鏈節點所需的轉矩。
單獨的鉸鏈關節要應用到一個遊戲對象上,鉸鏈或繞着Anchor屬性所指定的點來旋轉,按照Axis屬性指定的軸來移動。不用給關節的Connected Body屬性添加對象,只有當但願關節的Transform屬性依賴於附加對象的Transform屬性時才爲關節的Connected Body屬性來添加對象。多個鉸鏈關節也能夠串聯起來造成一條鏈條,能夠給鏈條的每—個環添加關節,並向Connected Body那樣添加到下一環上。
技巧:不須要指定Connected Body屬性來運轉關節。可調整Spring、Motor、Limits等屬性來驚喜調整關節的行爲狀態。
固定關節組件用於約束一個遊戲對象對另外一個遊戲對象的運動。相似於對象的父子關係,但它是經過物理系統來實現而不像父子關係那樣是經過Transform屬性來進行約束。
固定關節適用於如下的情形:當但願將對象較容易與另—個對象分開時,或者鏈接兩個沒有父子關係的對象使其一塊兒運動,使用固定關節的對象自身須要有—個剛體組件。
一、添加固定關節組件
依次打開菜單欄中的【Component】->【Physics】->【Fixed Joint】選項,就能夠爲所選擇的遊戲對象添加固定關節組件。
二、屬性
·Connected Body:鏈接剛體。指定關節要鏈接的剛體,若不指定則該關節將與世界座標系相鏈接。
·Break Force:斷開力。設置關節斷開的做用力。
·Break Torque:斷開轉矩。設置斷開關節所需的轉矩。
有時遊戲中會存在這樣的情景:當但願要某些遊戲對象暫時或永久性的地粘在一塊兒,這時就很適合使用固定關節組件。該組件不須要經過腳原本更改層級結構就能夠實現想要的效果,只須要爲那些要使用固定關節的遊戲對象添加剛體組件便可。
可經過Break Force和BreakTorque屬性來沒置關節的強度極限,若是這些參數不是無窮大而是—個數值,那麼當施加到對象身上的力或轉矩大於此極限值時,固定關節將被銷燬,其對對象的約束也就隨即失效。
彈簧關節組件可將兩個剛體鏈接在—起,使其像鏈接着彈簧那樣運動。
依次打開菜單欄中的Component->Physics->Spring Joint選頂,便可爲所選擇的對象添加彈簧關節組件。
其屬性和前面介紹的屬性類似,此處就不重複了。
彈簧關節容許一個帶有剛體的遊戲對象被拉向—個指定的目標位置,這個目標能夠是另外一個剛體對象或者世界。當遊戲對象離目標位置愈來愈遠時,彈簧關節會對其施加一個做用力使其回到目標的原點位置,相似橡皮筋或者彈弓的效果。
當彈簧關節被建立後(預覽遊戲模式下),其目標位置是由從錨點到鏈接的剛體(或世界)的相對位置所決定的,這使得在編輯器中將彈簧關節設定給角色或其餘遊戲對象很是容易,可是若是經過腳原本生成一個實時的推拉彈簧的行爲就相對比較困難。
若是想經過彈簧關節來控制遊戲對象的位置,一般是創建一個帶有剛體的空對象,而後將該空對象設置到Connected Regidbody屬性上,這樣就能夠經過腳原本控制空對象的移動,這樣一來,彈簧也會隨着空對象的位移而移移動了。
角色關節主要用於表現布娃娃效果,它是擴展的球關節,可用於限制每個軸向上的關節。
依次打開菜單欄中的Component->Physics->Character Jont選項,就能夠爲所選擇的遊戲對象添加角色關節組件。
角色關節的屬性和前面介紹的屬性類似,此處僅介紹一些不重複的選項。
·Swing Axis:擺動軸。設置角色關節的擺動軸,以綠色的圓錐gizmo表示。
·Low Twist Limit:扭曲下限。設置角色關節扭曲的下限。
Limit:設置角色關節扭曲的下限值。
Bounciness:設置角色關節扭曲下限的反彈值。
Spring:設置角色關節扭曲下限的彈簧強度。
Damper:設置角色關節扭曲下限的阻尼值。
·High Twist Limit:扭曲上限。設置角色關節扭曲的上限。
·Break Force:斷開力。控制角色關節斷開所需的做用力。
·Break Torque:斷開轉矩。設置角色關節斷開所需的轉矩。
可配置關節組件支持用戶自定義關節,它開放了Physics引擎中全部與關節相關的屬性,所以可像真他類型的關節那樣來創造各類行爲。
可配置關節有兩類主要的功能:移動/旋轉限制和移動/旋轉加速度。
依次打開菜單欄中的Component->Physics-> Configuration Joint項,便可爲所選擇的對象添加可配置關節組件。
一、移動旋轉限制
能夠爲每一個旋轉軸和運動類型指定約束。針對X軸、Y軸以及Z軸運動可定義沿不一樣軸的移動,而針對X軸、Y軸、Z軸旋轉可定義沿不一樣軸的旋轉,這些屬性能夠被沒定爲Free(不受約束)、Limited(受自定義的限制)及Locked(鎖定狀態沒法運動)。
1)移動限制:若是遊戲對象某個軸的Motion屬性設定爲Limied,則可經過修改Limited屬性值來設定該軸的運動約束值。對於平移運動,Linear Limited屬性將沒定該對象可以遠離原點的最大距離,經過該屬性下的Limit數值能夠對Motion屬性值爲Limited的任何移動進行約束。
2)旋轉限制:旋轉限制與移動限制相相似,只是Angular Motion屬性是與Angular Limit相關。Linear Limit屬性設定了對3個軸在移動上的約束,而Angular Limit屬性則設定了對於3個軸在旋轉上的約束。
二、移動旋轉加速度
使對象到達指定的位置或方向運動,或到達指定的速度或角速度。此係統的工做方式是:首先定義一個想要達到的目標,而後經過驅動力來提供加速度以便使其到達此目標,每個驅動都有一個模式,經過此模式可定義該對象當前的目標。
1)移動加速度X、Y、Z軸驅動屬性使遊戲對象沿着特定的軸來移動,每一個驅動模式指定的對象是朝着目標位置仍是目標速度抑或是二者兼而有之的運動方式。好比當X軸驅動設置爲Position時,對象會朝着X軸的目標位置去移動。
當驅動模式爲Position時,它的位置彈簧值將決定其如何朝着目標位置運動;一樣,當驅動模式爲Velocity時,它的最大做用力將決定該對象如何被加速至目標速度。
2)旋轉加速度:旋轉加速度屬性爲X軸角、YZ軸角驅動及插值驅動,其功能與移動驅動基本相同,只是插值驅動與角驅動在功能上表現不一樣。能夠在旋轉驅動模式中選擇是採用角驅動仍是插值驅動,但這兩種驅動不能同時被使用。