碰撞和触发
碰撞器分類:
盒型碰撞器(Box Collider),球形碰撞器(Sphere Collider),膠囊碰撞器(Capsule Collider),網格碰撞器(Mesh Collider),車輪碰撞器(Wheel Collider)等;
效率比較:
球形碰撞器>膠囊碰撞器>盒型碰撞器>網格碰撞器
碰撞的必備條件:
1、兩個物體要有碰撞器
2、必須要有一個物體有剛體
物理材質:
Dynamic Friction:動態摩擦力。游戲對象運動時候的摩擦力,取值在0~1之間。
Static Friction:靜態摩擦力。游戲對象放置表面時候的摩擦力,取值在0~1之間。值為0時表面類似冰的效果。
Bounciness:反彈,該參數用于設置游戲對象的反彈,值為0時表示沒有反彈,值為1時表示能量沒有損失的反彈,會一直反彈
Friction combine:摩擦力組合,該參數用于設置游戲對象摩擦力的組合方式。
Bounce combine:反彈組合,用于設置游戲對象反彈力的組合,反彈力組合提供了與摩擦力類似的選項。
碰撞檢測:
能發生碰撞發生的方式有兩種,一種是利用碰撞器,另一種則是利用觸發器。
一、碰撞器是一群組件,包含了多個種類,比如:Box Collider, Capsule Collider等,這些碰撞器應用的場合不同,但必須加到GameObject身上。
二、所謂觸發器,只需要在檢視面板中碰撞器組件中勾選is Trigger屬性選擇框。
三、給游戲對象添加剛體(Rigdbody)組件,并且取消剛體組件的重力選項UseGravity。
碰撞器的三種方法:
//碰撞接觸的那一幀被調用 ?
????void OnCollisionEnter(Collision collision) { ?
? ? ?print(collision.gameObject.name);? }
// 碰撞接觸的每幀都被調用 ?
????void OnCollisionStay(Collision collision) { ?
????????print(collision.gameObject.name); ?? } ?
????// 碰撞結束被調用 ?
????void OnCollisionExit(Collision collision) { ?
????????print(collision.gameObject.name); ??} ?
觸發器的三種方法:觸發器可以穿透,所以把重力去掉。
// 觸發接觸的那一幀被調用 ?
????void OnTriggerEnter(Collider other) { ?
???????print(other.gameObject.name); ?
????} ?
????//觸發接觸的每幀都被調用 ?
????void OnTriggerStay(Collider other) { ?
??????print(other.gameObject.name); ?
????} ?
????// 觸發結束被調用 ?
????void OnTriggerExit(Collider other) { ?
?????print(other.gameObject.name); ?
????} ?
總結
- 上一篇: 2019未来科学大奖周盛大开幕 百格活动
- 下一篇: springmvc controll与j