刚体方法
Rigidbody body
1 获取刚体组件
body= this.GetComponent<Rigidbody>();2 添加力
相对世界坐标
body.AddForce(Vector3.forward * 10);相对本地坐标
body.AddRelativeForce(Vector3.forward * 10);3 添加扭矩力 让旋转
相对世界坐标
body.AddTorque(Vector3.up * 10);相对本地坐标
body.AddRelativeTorque(Vector3.up * 10);4 直接改变速度
速度方向是相对于世界坐标系的 很少使用速度让其移动
body.linearVelocity=Vector3.forward*5;5 模拟爆炸效果
要给所有的爆炸物体添加脚本
body.AddExplosionForce(10, Vector3.zero, 10);力的几种模式
body.AddForce(Vector3.forward * 10, ForceMode.Acceleration);动量定理 Ft = mv
1 Accleration
给物体增加一个持续的加速度 ,忽略其质量
v = ft / m
F(0,0,10)
t:0.02s
m:默认为1
v = 10 * 0.02 / 1 = 0.2m / s
每物理帧移动0.2m / s * 0.02 = 0.004m
2 Force
最符合真实情况下的力
给物体增加一个持续的力,与物体的质量有关
F(0,0,10) t0.02s m:2kg
每物理帧移动0.1m / s * 0.02 = 0.002m
3 Impluse
给物体添加一个瞬间的力,与物体的质量有关 忽略时间 默认为1
F(0,0,10) t默认为1 m:2kg
v = 10 * 1 / 2 = 5m / s 每物理帧移动5m / s * 0.02 = 0.1m
4 VelocityChange
物体一个瞬时速度 忽略质量 时间
t默认为1,时间默认1
V = 10 * 1 / 1 = 10m / s
每物理帧移动10m / s * 0.02s = 0.2m
力场脚本
Constant Force持续的力并且会 自动加刚体
刚体休眠
为了节约性能,刚体会不进行计算
判断刚体休眠 然后唤醒他
if (body.IsSleeping()) { body.WakeUp(); }如何让物体产生位移
改变position属性
Translate方法
rigdbody.Addforce和 rigidbody.AddrelativeForce
rigidbpdy.velocity改变速度变量