1. 程式人生 > >關於Unity中的剛體和碰撞器的相關用法

關於Unity中的剛體和碰撞器的相關用法

detection 坐標系 改變 sta n) 高速 節點 none 離散

1.創建一個3D工程

2.構造項目文件目錄

3.保存場景為game_scene到文件夾scenes中

4.創建一個Plane平面類型的GameObject節點和一個Sphere球體類型的GameObject節點

5.給Plane貼上圖片,Sphere貼上材質

6.運行,發現球在空中靜止,因為沒有添加受力體,也就是剛體組件Rigidbody,添加後運行,球從空中掉到平面上,前提是兩者都已經有Collider碰撞器組件,否則只要一方沒有Collider就會穿過彼此。

Rigidbody組件屬性

1.Mass(質量): [0, 10],默認為1, [0.1, 10]日常生活的感受;

2.Drag(阻力): 物體移動時的阻力
3.AngularDrag(旋轉阻力): 旋轉時候的衰減;
4.Use Gravity(使用重力): 是否受重力影響;
5.Is Kinematic(是否受牛頓運動學影響): false,正常的物理計算,true運動只會在代碼和動畫裏面受影響,普通的碰撞等都不會改變它的運動狀態;
6.Interpotate: (物體運動插值模式) None(最近計算值) Interpolate(內插值) extrapolate(外插值)
7.Collision Detection:Discrete(離散模式 資源少,靜止,低速,普通物體) Continuous(連續檢測,高速體積小,子彈)。被使用了Continusous檢測撞擊的對象(被子彈撞擊的物體),使用Continus Dynamic模式;
子彈發射碰撞物體,在兩個update之間,時間dt範圍之內,使用Discrete,子彈會偶然穿過物體,且顯示沒有發生碰撞,Continuous會判斷初始和穿過之後這段距離之間有沒有發生碰撞,有就吧子彈還原到撞到物體表面的狀態,子彈不會穿過物體。

  Discrete優點運行速度快,性能消耗小,缺點有穿透。

  Continuous優點不會穿透,缺點運行速度慢,性能消耗大。

  Continus Dynamic搭配Continuous,提升仿真效果。

8.Constraints(約束):哪個坐標軸打鉤哪個就不會改變,位置和旋轉,都可以設置。

剛體變量

1: 角速度(angularVelocity);
2: 線性速度(velocity);
3: 重心(center of mass)
4: 碰撞檢測開關(detectCollisions): 默認為true, 關閉檢測碰撞 false;
5: intertiaTensor慣性張量 intertiaTensorRotation 慣性張量旋轉;
6: 最大角速度(maxAngularVelocity);
7: 最大穿透速度(maxDepenetrationVelocity)
8: position:剛體的世界坐標,與圖像的transform.position盡量保持一致。因為是剛體帶動圖像在運動,所以剛體先動,然後圖像才動,所以兩者坐標大致相同。
9: rotation: 剛體在世界坐標的旋轉,與圖像的transform.rotation也是盡量保持一致。
10: useConeFiction是否使用錐形摩擦,一般false; true一般不使用;

創建一個ball的腳本,掛載在Sphere球體下面。ball腳本的內容:

   Rigidbody body;
// Use this for initialization void Start () { this.body = this.GetComponent<Rigidbody>(); Debug.Log(this.body.angularVelocity); // 角速度 Debug.Log(this.body.velocity); // 線性速度; Debug.Log(this.body.centerOfMass); //
重心; // 關閉了以後就不會有碰撞,這個球就會穿透這個平面 // this.body.detectCollisions = false; // transform.position 也會有一個坐標大致相等。 Debug.Log(this.body.position); // 剛體所在的世界坐標 Debug.Log(this.body.rotation); // 剛體的旋轉 }

剛體常用方法

F *T=沖量變化=MV1-MV0

F:力的大小和方向

T:力的作用時間

當V0為0時,F *T=MV

世界坐標就是Scene視圖右上角那個坐標系的坐標,和物體自身的模型坐標系沒有關系。

關於Unity中的剛體和碰撞器的相關用法