一:添加组件
1、检视面板 AddComponent
2、菜单栏Component->physics
二:刚体变量
1、质量
2、阻力
3、旋转阻力
4、是否使用重力,打钩为使用
5、是否受到力的作用,打钩为不受作用
6、Interpolate 单独渲染刚体 差值算法 内差,外差 ,刚体为抖动的时候要差值,减少抖动,可为设置主角
7、Collision Detection 碰撞检测
1️⃣隔断时间不连续检测 在快速移动时,会直接穿过,没有碰撞,来不及检测
2️⃣连续检测
3️⃣动态连续检测 用于高速移动的物体,但是也不一定能检测到
但是由于都不能一直检测到,所以一般用射线检测,其他检测方法
8、Constranints 冻结,冻结某个方向,旋转方向。
比如,使用重力,但是冻结y方向,物体不会掉下来
冻结x轴,掉下来而是原来的状态,不会翻转下来
三:常用属性
1、速度 _rig.velocity = new Vector3 (0, 1, 1) * 15f;
2、旋转速度 _rig.angularVelocity = Vector3.up * 10f;
3、设置重心 rig.centerOfMass = Vector3.down;
4、设置穿透,不检测碰撞: _rig.detectCollisions = false;
四:方法
1、施加力量
_rig.AddForce (Vector3.up * 200f,ForceMode.Force);
2、旋转力
if (Input.GetKeyDown (KeyCode.Q)) {
_rig.AddTorque (Vector3.up * 5f, ForceMode.Impulse);//旋转力
}
3、对物体的某个位置(相对自身)施加力
if (Input.GetKeyDown (KeyCode.W)) {
_rig.AddForceAtPosition (Vector3.forward * 20f, new Vector3 (0.5f, 0.5f, -0.5f));
}
第二个参数是枚举类型ForceMode
力 ForceMode.Force: 按物体实际质量和实际的力的作用时间,给物体施加力 (默认)
冲动 ForceMode.Impulse: 实际质量,忽略力的作用(按1s),给物体施加力
加速度 ForceMode.Acceleration: 忽略质量(按1为单位),按实际力的作用时间,给物体施加力
速度变化 ForceMode.VelocityChange:忽略质量(按1为单位),忽略时间(按1s),给物体施加力
ForceMode的理解
作用时间理解:
Force: 执行一次,施加一帧时间(0.02s左右)的作用力
Impulse:执行一次,施加持续1秒的作用力