当前位置:网站首页>D46_给刚体施加的力
D46_给刚体施加的力
2022-08-05 05:18:00 【没那么简单GG】
Rigidbody r;
public int F;
private void Start()
{
r = GetComponent<Rigidbody>();
r.AddForce(Vector3.forward * F, ForceMode.Force);
//v = f * t / m;
//添加一个 持续 的力,并且使用质量
//不同质量的物体运动的速度不同
//物体最终是匀速运动,速度与力的大小和刚体的质量有关
r.AddForce(Vector3.forward * F, ForceMode.Impulse);
//v = f * t / m;
//添加一个 瞬间 的力,并且使用质量
//不同质量的物体运动的速度不同
//物体最终是匀速运动,速度与力的大小和刚体的质量有关
r.AddForce(Vector3.forward * F, ForceMode.VelocityChange);
//v = f * t / m;
//添加一个 瞬间 的力,忽略质量
//物体最终是匀速运动,速度只受到力的大小影响
r.AddForce(Vector3.forward * F, ForceMode.Acceleration);
//v = f * t / m;
//添加一个 持续 的力,忽略质量
//物体最终是匀速运动,速度只受到力的大小影响
r.AddTorque(Vector3.forward * F, ForceMode.Force);
//添加扭矩(世界方向)
r.AddRelativeForce(Vector3.forward * F, ForceMode.Force);
//添加力(自身方向)
r.AddRelativeTorque(Vector3.forward * F, ForceMode.Force);
//添加扭矩(自身方向)
}来个题:
要求实现炸弹爆炸效果
public float radius;
public float force;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
//找到爆炸范围内的所有Collider 给需要添加力的物体统一加一个Layer
Collider[] col=Physics.OverlapSphere(transform.position,radius,1<<8);
for (int i = 0; i < col.Length; i++)
{
//找到炸弹和各个游戏物体之间的方向
Vector3 dir = (col[i].transform.position - transform.position).normalized;
//离炸弹最近爆炸力最大=force 离炸弹超过radius(爆炸半径)力最小=0
//距离越远游戏物体受到的冲击力越小 距离越大 t越小
float t = 1 - (Vector3.Distance(transform.position,col[i].transform.position)/radius);
//t限制在0到1之间
t=Mathf.Clamp(t,0,1);
float finalForce = Mathf.Lerp(0,force,t);
//添加一个瞬时的,受质量影响的力
col[i].GetComponent<Rigidbody>().AddForce(dir*finalForce,ForceMode.Impulse);
}
}
}边栏推荐
猜你喜欢

UE5再次更新!扫描或手动建模面部模型可直接转为绑定好的Metahuman

最简单的防抖节流理解法

【nodejs】第一章:nodejs架构

GIS面试问题

framebuffer应用编程及文字显示(1)

偷题——腾讯游戏开发面试问题及解答

(C语言)动态内存管理

【shell编程】第二章:条件测试语句

【UiPath2022+C#】UiPath 数据操作
![[Pytorch study notes] 10. How to quickly create your own Dataset dataset object (inherit the Dataset class and override the corresponding method)](/img/71/f82e76085f9d8e6610f6f817e2148f.png)
[Pytorch study notes] 10. How to quickly create your own Dataset dataset object (inherit the Dataset class and override the corresponding method)
随机推荐
PID详解
Lua,ILRuntime, HybridCLR(wolong)/huatuo热更对比分析
1004 成绩排名 (20 分)
十、视图解析原理与源码分析
URP渲染管线实战教程系列 之URP渲染管线实战解密(一)
LeetCode刷题之第746题
伪RTOS-ProroThread在CH573芯片上的移植
十一、拦截器运行原理
每日一题-寻找两个正序数组的中位数-0713
基于STM32F4的FFT+测频率幅值相位差,波形显示,示波器,时域频域分析相关工程
腾讯内部技术:《轩辕传奇》服务器架构演变
【ts】typescript高阶:模版字面量类型
【ts】typescript高阶:映射类型与keyof
【nodejs】第一章:nodejs架构
电子产品量产工具(3)- 文字系统实现
TinyFlashDB:一种超轻量的可纠错的通用单片机flash存储方案
Redis设计与实现(第二部分):单机数据库的实现
【Promise高级用法】实现并行和串行API
常见的 PoE 错误和解决方案
(C语言)动态内存管理