【Unity基礎(chǔ)】重力系統(tǒng) 剛體組件 Rigidbody 移動.碰撞.觸發(fā)檢測
? ? ? ?當(dāng)在Unity中創(chuàng)建游戲或應(yīng)用程序時,重力系統(tǒng)是一個非常重要的組成部分。它可以模擬物體受到地球引力的影響,并產(chǎn)生逼真的物理效果。在Unity中,我們可以使用剛體組件和重力向量來控制重力系統(tǒng)。
? ? ? ?首先,在Unity中創(chuàng)建一個物體,并將其設(shè)為剛體??梢酝ㄟ^在場景中選擇物體并在Inspector面板中勾選"Is Kinematic"選項(xiàng)來確保物體不受其他力的影響。
首先我們先了解一下重力組件Rigidbody

質(zhì)量(Mass):對象的質(zhì)量
阻力(Drag):模擬運(yùn)動時受到的阻力
角阻力(AngularDrag):模擬旋轉(zhuǎn)時受到的阻力
使用重力(UseGravity):是否使用重力
IsKinematic:是否是啟用動力學(xué),如果取消勾選物體就不會有重力下落了
插值(Interpolate):物體運(yùn)動位置的插值器?
None:沒有插值
Interpolate:內(nèi)插值。基于前一幀的Transform來平滑此次的Transform
Extrapolate:外插值?;谙乱粠腡ransform來平滑此次的Transform
碰撞檢測(CollisionDetection):可以增加碰撞檢測頻率
Discrete: 離散碰撞檢測,默認(rèn)碰撞檢測,物體高速移動可能會發(fā)生穿透
Continuous:連續(xù)碰撞檢測,可以對移動的對象進(jìn)行碰撞檢測
Continuous Dynamic:連續(xù)動態(tài)檢測,高速運(yùn)動的物體可以可以使用,例如子彈
Continuous Speculative:推測檢測,可以適用于Continuous和Continuous Dynamic檢測對象,但消耗性能更低
Constraints:控制剛體運(yùn)動的約束
凍結(jié)位置:勾選后可以使剛體在相應(yīng)軸不能移動
凍結(jié)旋轉(zhuǎn):勾選后可以使剛體在相應(yīng)軸不能旋轉(zhuǎn)
碰撞檢測:
碰撞檢測條件
1.兩個物體必須都包含碰撞體組件
2.至少有一個物體包含剛體組件
碰撞檢測的方法
OnCollisionEnter( Collision collisionInfo )??當(dāng)兩個對象開始碰撞的時候觸發(fā)一次
OnCollisionExit( Collision collisionInfo )? ? ?當(dāng)兩個對象碰撞結(jié)束的時候觸發(fā)一次
OnCollisionStay( Collision collisionInfo )? ??當(dāng)兩個對象持續(xù)碰撞的一直觸發(fā)
觸發(fā)檢測:
觸發(fā)檢測條件
1.兩個物體必須都包含碰撞體組件,并且其中一個對象是勾選了是觸發(fā)器

2.至少有一個物體包含剛體組件
觸發(fā)檢測的方法
OnTriggerEnter( Collider other )? ??當(dāng)兩個對象開始碰撞的時候觸發(fā)一次
OnTriggerExit( Collider other )? ? ???當(dāng)兩個對象碰撞結(jié)束的時候觸發(fā)一次
OnTriggerStay( Collider other )? ? ??當(dāng)兩個對象持續(xù)碰撞的一直觸發(fā)
下面是一個簡單的示例代碼,展示了如何在Unity中移動和跳躍: