Unity3D-Rigidbody

挂载Rigidbody的Gameobject受物理引擎的作用,有真实的物理力学。

Mass质量:物体的质量(任意单位)。建议一个物体的质量不要多余或少于其他单位的100倍。

Drag阻力:当受力移动时物体收到的空气阻力。0表示没有空气阻力,极大时物体立即停止运动。

Angular Drag角阻力:当受扭力旋转的时候物体受到空气阻力。0表示没有空气阻力,极大时物体立即停止运动。

Use Gravity使用重力:若激活,物体受重力影响。

Is Kinematic是否运动学:若激活,物体不受物理引擎驱动,而只能通过变换来操作。适用于模拟的平台或者模拟模拟受铰链关节连接的刚体。

Interpolate插值:当你发现刚体运动时抖动,可以尝试下面选项。

  1. None无:No Interpolation is applied。不引用插值。
  2. Interpolate内插值:基于上一帧的变换来平滑本帧变换。
  3. Extrapolate外插值:基于下一帧的预估变换来平滑本帧变换。

Collision Detection碰撞检测:碰撞检测模式。用于避免高速物体穿过其他物体,却未触发碰撞。

  1. Discrete不连续:不连续碰撞检测。使用不连续碰撞检测模式来与场景中其他碰撞器进行碰撞检测。其他物体与它的碰撞检测也会应用这种模式。适用于普通碰撞(默认)。
  2. Continuous连续:连续碰撞检测。使用不连续碰撞检测来检测与动态碰撞器(刚体)的碰撞,使用连续碰撞检测来检测与静态网格(非刚体)的碰撞检测。采用连续动态碰撞检测模式的刚体碰见这类物体也将采用连续碰撞检测模式,而与其他刚体将采用不连续碰撞检测模式。这种模式适用于那些采用连续动态碰撞模式的物体碰撞的物体。(这对物理表现有很大的影响,如果你不关心与高速物体的碰撞,那就用默认的不连续模式)
  3. 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 强制一个刚体唤醒

中文API入口

原文地址:https://www.cnblogs.com/dlvguo/p/9734098.html