Unity3D进阶教程(三)刚体运动,扭矩,物理更新,碰撞
八 刚体的运动[*]刚体的运动
[*]物理系统的运动
Force力 Velocity速度 Impulse冲量 Accelaration加速度 Angular Velocity角速度 Torque扭矩
[*]unity操作
成为rigidbody
[*]FixedUpdate()
rb.AddForce()
[*]摩擦力
物理材质属性
[*]力与速度
F*T=M*V
[*]FixedUpadte
[*]更新时间
0.2s一次,每秒50次
[*]AddForce()
施加力
[*]加力的方式
ForeMOde.Force作用力 ForceMOde.Acceleration加速度 ForceMode.Impulse冲量 ForceMOde.VelocityChange速度冲量
[*]减速运动
减少速度为0
[*]脚本操作
rb.velocity velocity.magnitude velocity.normalized
[*]运动学刚体
[*]Kinematic不受力的作用
移动方式直接控制position
[*]物理系统三种物体
静物 刚体 运动学刚体
九 (练习)运动小车
[*]添加小车
添加Rigidbody 添加Box Collider
[*]向前运动
设置物理材质
[*]添加运动脚本
AddRelativeForce()自身坐标系施加力
[*]刹车与倒车
条件判断+运动
十 扭矩与转动
[*]扭矩
单位:牛*米
[*]施加扭矩
rb.AddRelativeTorque()
[*]角速度
[*]单位为弧度
2*PI为一圈
rb.angularVelocity rb.maxAngularVelocity默认为7弧度
[*]加速与减速
[*]四种施加扭矩的方式
力,加速度,冲量,角速度
[*]能量衰减
[*]Rigibody组件
drag线速度衰减系数 Angular drag角速度衰减系数
(练习)小车的转向
十一 物理更新
[*]物理更新
[*]文档:事件函数执行顺序
FixedUpdate()
[*]游戏时间
Time.time经过折算的时间 Time.realtimeSinceStartup真实系统时间
[*]单线程
无并发
[*]帧调度
Update调度时间受系统影响 FixedUpdate相对固定
[*]Input Flag
不应在FixedUpdate中使用Input获取事件输入
十二 物理碰撞
[*]物理碰撞
碰撞体之间碰撞
[*]碰撞条件
Mesh Colider必须设置Convex才能实现碰撞
[*]CCD连续检测
解决速度过快的穿透问题
[*]Collision Detection
Discrete离散的 Continous连续的 Continous Dynamic基于扫掠的CCD Continuous Speculative推断性CCD
[*]碰撞事件函数
Collision类
[*]事件函数
OnColiisionEnter OncollisionStay OncoliisionExit
组合碰撞体
[*]子物体碰撞体
父物体添加刚体,接收碰撞事件 子物体添加碰撞体
[*]刚体的质心
重心 rb.centerOfMass
页:
[1]