找回密碼
 注冊帳號

掃一掃,訪問微社區

物理組件(physicscomponent)

2015-1-7 07:21| 發布者: 楊炎| 查看: 1453| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: 物理組件 (physics component)unity 有內置 nvidia physx 物理引擎。允許出現獨特的突發行為還有許多有用的功能。基本信息要物理控制對象,只需對其添加剛體 (rigidbody)。執行此操作時,對象將受重力影響,可以與世 ...

物理組件 (physics component)

unity 有內置 nvidia physx 物理引擎。允許出現獨特的突發行為還有許多有用的功能。

基本信息

要物理控制對象,只需對其添加剛體 (rigidbody)。執行此操作時,對象將受重力影響,可以與世界坐標中的其他對象碰撞

剛體 (rigidbody)

剛體 (rigidbody)是以物理方式模擬的對象。可將剛體 (rigidbody) 用于玩家可以四處推動的事物(例如板條箱或松散對象),或通過編寫腳本向剛體 (rigidbody) 應用力直接移動它。<

如果直接移動非運動學剛體 (non-kinematic rigidbody) 的變換,則可能不會與其他對象正確碰撞。而是應通過向剛體 (rigidbody) 應用力和扭矩來移動它。還可以向剛體 (rigidbody) 添加關節 (joint)以使行為更復雜。例如,可以創建具有物理門或搖擺鏈條的起重機。

還可使用剛體 (rigidbody) 使車輛顯得生動,例如可以使用一個剛體 (rigidbody)、四個車輪碰撞體 (wheel collider)以及一個基于用戶輸入應用車輪力的腳本,來創建汽車。

可以通過從腳本向剛體 (rigidbody) 應用力來創建飛機。也可以通過添加各種關節 (joint) 并通過腳本應用力來創建特殊車輛。

剛體 (rigidbody) 最常與基元碰撞體 (primitive collider)結合使用。

提示:

絕不應一起使用父和子剛體 (rigidbody)

絕不應縮放剛體 (rigidbody) 的父級

運動學剛體 (kinematic rigidbody)

運動學剛體 (kinematic rigidbody)是啟用了“為運動學”(iskinematic) 選項的剛體 (rigidbody)。運動學剛體 (kinematic rigidbody) 不受力、重力或碰撞的影響。它們通過設置變換的位置和旋轉或對其進行動畫處理來明確驅動,還可以與其他非運動學剛體 (non-kinematic rigidbody) 交互。

運動學剛體 (kinematic rigidbody) 可在與其他剛體 (rigidbody) 碰撞時正確喚醒它們,并會對置于其上的剛體 (rigidbody) 應用摩擦力。

下面是針對運動學剛體 (kinematic rigidbody) 的幾個示例使用情況:

有時希望對象處于物理控制下,但是在其他情況下是從腳本或動畫進行明確控制。例如,您可以創建一個動畫角色,其骨骼附加了與關節 (joint) 連接的剛體 (rigidbody),以用作布娃娃。大多數時候該角色處于動畫控制下,因而您會創建運動學剛體 (kinematic rigidbody)。但是當命中他時,您希望他變為布娃娃并受物理影響。為實現此目的,只需禁用“為運動學”(iskinematic) 選項。

有時您需要可以推動其他對象、但不推動自己的移動對象。例如,如果您具有一個動畫平臺并且您要在其上放置一些剛體 (rigidbody) 箱體,則應使該平臺成為運動學剛體 (kinematic rigidbody) 而不僅僅是不帶剛體 (rigidbody) 的碰撞器 (collider)

您可能要有一個經過動畫處理的運動學剛體 (kinematic rigidbody),并使用一個可用的關節 (joint) 讓真實剛體 (rigidbody) 跟隨其后。

靜態碰撞組件 (static collider)

靜態碰撞組件 (static collider)r是具有碰撞體 (collider) 而不是剛體 (rigidbody) 的游戲對象 (gameobject)。靜態碰撞體 (static collider) 用于始終保持在相同位置并且從不四處移動的水平幾何結構。可以將網格碰撞組件 (mesh collider)添加到已存在的圖形網格(使用導入設置 (import settings)生成碰撞體 (generate colliders) 復選框甚至更好),也可以使用其他碰撞組件 (collider) 類型之一。

絕不應逐個幀地移動靜態碰撞體 (static collider)。移動靜態碰撞體 (static collider) 會導致 physx 內部重新進行一次計算,其成本十分高昂,還會使性能顯著下降。不僅如此,基于靜態碰撞體 (static collider) 喚醒其他剛體 (rigidbody) 的行為未進行定義,并且移動靜態碰撞體 (static collider) 不會對與之接觸的剛體 (rigidbody) 應用摩擦力。而是移動的碰撞體 (collider) 應始終為運動學剛體 (kinematic rigidbody)。

角色控制器 (character controller)

如果要創建類人角色,可使用角色控制器 (character controller)。這可以是第三人稱掌上游戲 (third person platformer) 中的主角色、fps 射擊者或任何敵人角色。

這些控制器因為感覺不正常,所以不遵守物理規則(doom 中的您每小時跑 90 英里,在幀中停止然后在極小的空間中轉彎)。而是由角色控制器 (character controller) 執行碰撞檢測以確保角色可以沿墻滑動、走上和走下階梯等。

角色控制器 (character controller) 不受力影響,但是可以通過從腳本對剛體 (rigidbody) 應用力來推動它們。通常,所有類人角色都使用角色控制器 (character controller) 來實現。

角色控制器 (character controller) 本質上是非物理性的,因而如果要將真實物理現象(在繩索上搖擺、由大巖石推動)應用于角色,則必須使用剛體 (rigidbody),于是您可以對角色使用關節 (joint) 和力。角色控制器 (character controller) 始終沿 y 軸對齊,因此如果角色需要能夠在空間中改變方向(例如在變化的重力下),則也需要使用剛體 (rigidbody)。但是請注意,很難將剛體 (rigidbody) 調整為使角色感覺正常,因為游戲角色的預期行為方式是非物理性的。另一個差異在于,角色控制器 (character controller) 可以平穩地滑過指定高度的臺階,而剛體 (rigidbody) 則不能。

如果使剛體 (rigidbody) 成為角色控制器 (character controller) 的父級,則會獲得類似于“關節”(joint) 的行為。

組件 (component) 詳細信息

物理控制

剛體 (rigidbody)- 剛體 (rigidbody) 將對象置于物理控制下。

恒定力 (constant force)- 一種向剛體 (rigidbody) 添加恒定力的實用工具組件 (component)。適用于火箭和其他快速功能。

碰撞組件 (collider)

球體碰撞組件 (sphere collider)- 用于球形對象。

箱體碰撞組件 (box collider)- 用于箱形對象。

膠囊碰撞組件 (capsule collider)- 用于類似于膠囊(具有半球端的圓柱體)對象。 hemisphere ends) objects.

網格碰撞組件 (mesh collider)- 采用圖形網格并將其用作碰撞形狀。

物理材質 (physic material)- 包含使您可以微調對象物理屬性(摩擦力、反彈等)的設置。

關節 (joint)

鉸鏈關節 (hinge joint)- 用于創建門鉸鏈。

彈簧關節 (spring joint)- 類似于彈簧的關節。

固定關節 (fixed joint)- 用于將對象“鎖定”在一起。

可配置關節 (configurable joint)用于創建幾乎任何類型的復雜關節行為

特殊功能

角色控制器 (character controller)和角色關節 (character joint)- 用于創建角色控制器 (character controller)。

車輪碰撞組件 (wheel collider)- 用于接地車輛的特殊碰撞器 (collider)。

蒙皮布 (skinned cloth)- 用于創建蒙皮布 (skinned cloth)

交互布 (interactive cloth)- 用于創建交互布 (interactive cloth),這就是所模擬的普通布。

上一篇:尋路下一篇:動畫組件

相關閱讀

文章點評
相關文章
女校游泳队彩金