unity collider rigidbody zz
生活随笔
收集整理的這篇文章主要介紹了
unity collider rigidbody zz
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.sina.com.cn/s/blog_5b6cb95001017vfr.html 其中最基本的關系: Collider是最基本的觸發物理的條件,例如碰撞檢測。基本上,沒有Collider物理系統基本沒有意義(除了重力)。 Rigidbody是物體的基本物理屬性設置,當檢測碰撞完之后,就要計算物理效果,而Rigidbody就是提供計算基本參數的玩意。 PhysicMaterial則是附加的基本物理參數,是一個物理材質,UNITY3D有自帶默認的物理材質的系數(在Edit/Project Settings/Physic下設置),它參與碰撞的計算例如反彈效果摩擦效果等。 Rigidbody部分: Rigidbody組件的中文手冊:http://game.ceeger.com/Script/Rigidbody/Rigidbody.html Rigidbody相關具體函數我就不解釋了,看官方手冊就很明朗,不過有幾個還是要講一下。 1. 如果沒有Rigidbody而設置了Collider碰撞的話,那這個物體就是個死死不會動的物體。 假設有Rigidbody去撞它的話,那將會被彈開。不過,假設該腳本控制的是位移而不是物理加力的方式的話,將穿透過去。 兩個沒有Rigidbody的物體,也是穿透。 兩個只有collider而沒有rigidbody啥都不會發生,碰撞時連OnTriggerEnter等函數也不會觸發。 若碰撞體設置了isTrigger屬性,將取代UNITY的物理函數來運算。可以在觸發函數里將其屏蔽,再次觸發碰撞等效果。 2. 如果物理系統感覺不真實不好,那很可能是縮放的問題。如果你的游戲世界非常大,所以的東西將顯示移動非常慢,確保你所有的模型為真實世界大小。例如,一個汽車應該有4米長,一個角色約2米高。物體以相同的加速度下落,不論大或小,重或輕。如果你的游戲世界有較大的縮放,物體仍以相同的加速度下落,但是因為所有的物體都比較大,物體的下落顯得就比較慢。(BY U3D圣典的翻譯) 3. 當改變剛體參數的時候(例如質量等),應該在FixedUpdate函數中使用它,物理模擬以離散的時間步執行。FixedUpdate函數在每一步之前被立即調用。(修改自U3D圣典的翻譯) 4. isKinematic這個參數指的是是否受物理力的影響,如果勾上則不收AddForce等物理添加力的函數影響了。 5. collisionDetectionMode 碰撞檢測模式 使用這個創建一個剛體的連續碰撞檢測,從沒有碰撞檢測的其他物體傳遞,用來防止快速移動的物體,為了獲得最佳效果,為快速移動的物體設置這個值為CollisionDetectionMode.ContinuousDynamic,以及為其他與之需要碰撞的物體設置這個值,為CollisionDetectionMode.Continuous。這個對物理性能有很大影響,所以只要給它設置為默認值 CollisionDetectionMode.Discrete,假如快速物體的碰撞沒有任何問題。連續碰撞檢測只支持剛體的球體、膠囊或盒子碰撞器。(BY U3D圣典的翻譯) 6. AddTorque() 添加一個讓物體旋轉的力——力矩。 參照百度百科:http://baike.baidu.com/view/36869.htm 7. 關于爆炸和聚攏。 AddForceAtPosition()提供一個聚攏的力 AddExplosionForce()可用于炸彈爆炸的效果 ClosestPointOnBounds()可以計算范圍內從內到外的傷害,可以計算爆炸范圍內不同地點受到的傷害。好東西。 8. 與collider相應的時間觸發 OnCollisionEnter/OnCollisionExit/OnCollisionStay 9. 當collider的isTrigger屬性為true的時候,其碰撞事件將轉移到自定義腳本那。若想兩方同時觸發,再加個碰撞體來檢測。或者直接觸發完后將isTrigger設為false,則會再觸發rigidbody的碰撞。 Collider部分: Collider倒沒啥好講的,主要就是一個isTrigger屬性。還有選用怎么樣的Collider,選用的話看情況而定了。 其中物理材質在下面提一下,這個對于物理效果來說還是挺重要的。 兩Collider相碰,至少要有一個物體具有Rigibody剛體才會觸發Trigger函數。 當物體進來,OnTriggerEnter當然會觸發。出去時,OnTriggerExit也當然觸發。那么物體在進來后Destory后會如何?經過測試是:不會調用OnTriggerExit。 不僅是OnTriggerEnter,OnCollisionEnter這個由碰撞引起的函數也很有用,具體以項目所用為標準把,多查查函數手冊。 PhysicMaterial部分: PhysicMaterial的各屬性手冊:http://game.ceeger.com/Script/PhysicMaterial/PhysicMaterial.html 一般來說只用前三個吧。 1.dynamicFriction 移動時候使用的摩擦力。這個值在0到1之間。 2.staticFriction 當物體在表面靜止時使用的摩擦力。通常在0到1之間。 3.bounciness 表面的彈力怎樣?0值沒有彈力。1值沒有能量損失的反彈。 設置好材質直接用就可以了,拖到collider里面。
?
轉載于:https://www.cnblogs.com/18fanna/p/3962997.html
總結
以上是生活随笔為你收集整理的unity collider rigidbody zz的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于团队开发项目的想法
- 下一篇: 天津知青网6周年网庆-京剧-智取威虎山片