挂载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 | 强制一个刚体唤醒 |