掛載Rigidbody的Gameobject受物理引擎的作用,有真實的物理力學。

Mass質量:物體的質量(任意單位)。建議一個物體的質量不要多余或少於其他單位的100倍。
Drag阻力:當受力移動時物體收到的空氣阻力。0表示沒有空氣阻力,極大時物體立即停止運動。
Angular Drag角阻力:當受扭力旋轉的時候物體受到空氣阻力。0表示沒有空氣阻力,極大時物體立即停止運動。
Use Gravity使用重力:若激活,物體受重力影響。
Is Kinematic是否運動學:若激活,物體不受物理引擎驅動,而只能通過變換來操作。適用於模擬的平台或者模擬模擬受鉸鏈關節連接的剛體。
Interpolate插值:當你發現剛體運動時抖動,可以嘗試下面選項。
- None無:No Interpolation is applied。不引用插值。
- Interpolate內插值:基於上一幀的變換來平滑本幀變換。
- Extrapolate外插值:基於下一幀的預估變換來平滑本幀變換。
Collision Detection碰撞檢測:碰撞檢測模式。用於避免高速物體穿過其他物體,卻未觸發碰撞。
- Discrete不連續:不連續碰撞檢測。使用不連續碰撞檢測模式來與場景中其他碰撞器進行碰撞檢測。其他物體與它的碰撞檢測也會應用這種模式。適用於普通碰撞(默認)。
- Continuous連續:連續碰撞檢測。使用不連續碰撞檢測來檢測與動態碰撞器(剛體)的碰撞,使用連續碰撞檢測來檢測與靜態網格(非剛體)的碰撞檢測。采用連續動態碰撞檢測模式的剛體碰見這類物體也將采用連續碰撞檢測模式,而與其他剛體將采用不連續碰撞檢測模式。這種模式適用於那些采用連續動態碰撞模式的物體碰撞的物體。(這對物理表現有很大的影響,如果你不關心與高速物體的碰撞,那就用默認的不連續模式)
- Continous Dynamic動態連續:連續動態碰撞檢測。使用連續碰撞動態碰撞檢測方式來檢測與連續模式和連續動態模式的物體間的碰撞。也適用於靜態網格(非剛體)的碰撞檢測。而與之碰撞的其他模式的物體,采用的不連續動態碰撞檢測模式。適用於高速物體。
Constraints約束:對剛體運動的約束。
Freeze Position凍結位置:剛體在世界中沿所選x、y、z移動無效。
Freeze Rotation凍結旋轉:剛體在世界中沿所選x、y、z旋轉無效。
只能通過transform改變。
Collider碰撞組件:用於檢測倆個都攜帶Collider組件的GameObject碰撞。有以下屬性:
isTrigger:碰撞器是否是觸發器(可以穿越)
material:碰撞器所使用的物理材質
總結:
倆個物體要碰撞必須都有Collider,其中一個必須添加Rigidbody(最好在其中移動的物體添加)
倆個物體有一個勾選isTrigger則會穿越:
OnTriggerEnter();
OnTriggerExit();
OnTriggerStay();
否則進行碰撞:
OnCollisionEnter();
OnCollisionExit();
OnCollisionStay();
Properties變量
| angularDrag | 角阻力 |
| angularVelocity | 角速度 |
| centerOfMass | 相對於原點變換的質心 |
| collisionDetectionMode | 碰撞檢測模式 |
| constraints | 控制剛體模擬的自由度 |
| detectionCollisions | 碰撞檢測是否應用 |
| drag | 阻力 |
| freezeRotion | 控制是否改變物體旋轉 |
| inertia Tensor | 相對於重心質量的慣性張量對角線 |
| inertia TensorRotation | 慣性張量的旋轉 |
| interpolation | 平滑插值 |
| isKinematic | 是否運動學 |
| mass | 質量 |
| maxAngularVelocity | 最大角速度 |
| maxDepenetrationVelocity | 當非穿透狀態,剛體的最大速度 |
| position | 位置 |
| rotation | 旋轉角度 |
| sleepThreshold | 哪個對象開始進入休眠狀態,質量歸一的能力閾值 |
| solverIterationCount | 允許你覆蓋剛體求解的迭代次數 |
| useConeFriction | 用於該剛體的錐形摩擦力 |
| useGravity | 是否使用重力 |
| velocity | 速度 |
| worldCenterOfMass | 世界坐標中間的剛體的重心 |
Public Functions 公共方法
| Add ExplosionForce | 添加一個爆炸力 |
| AddForce | 添加一個力 |
| AddForceAtPositon | 在position位置加一個力 |
| AddRelativeForce | 添加力到剛體相對於它的局部坐標 |
| Add relativeTorque | 相對於它的局部坐標添加扭力 |
| AddTorque | 添加扭矩到剛體 |
| ClosestPointOnBounds | 指定位置到剛體附加碰撞器的最近點 |
| GetPointVelocity | 剛體在世界坐標,worldPoint速度 |
| GetRelativePointVelocity | 剛體在局部坐標點速度 |
| IsSleeping | 剛體是否在休眠 |
| MovePosition | 移動新位置 |
| MoveRotation | 旋轉到新的角度 |
| ResetCenterOfMass | 重置質心 |
| ResetInertiaTensor | 重置慣性張量何旋轉 |
| SetDensity | 設置基於碰撞器的密度質量 |
| Sleep | 強置剛體休眠 |
| SweepTest |
如果一個剛體碰到任何東西觸發測試(給剛體一個類似Physic.Raycast) |
| SweepTestAll | 返回所有碰撞信息 |
| WakeUp | 強制一個剛體喚醒 |
