Unity学习笔记(十四)刚体加力
2026/5/10 13:02:47 网站建设 项目流程

刚体方法

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改变速度变量

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询