当前位置:网站首页>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);
}
}
}边栏推荐
猜你喜欢

LeetCode刷题之第129题

论那些给得出高薪的游戏公司底气到底在哪里?

网工必用神器:网络排查工具MTR

OSPF网络类型

framebuffer应用编程及文字显示(1)
![[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)

LeetCode刷题之第86题

每日一题-删除链表的倒数第 N 个结点-0718

网络信息安全运营方法论 (下)

伪RTOS-ProroThread在CH573芯片上的移植
随机推荐
【shell编程】第三章:函数
基于STM32F4的FFT+测频率幅值相位差,波形显示,示波器,时域频域分析相关工程
网络通信及相关函数介绍
栈区中越界可能造成的死循环可能
CVPR2020 - 自校准卷积
最简单的防抖节流理解法
四、Web场景之静态资源配置原理
每日一题-最长有效括号-0724
CVPR2021 - Inception Convolution with Efficient Dilation Search
CVPR 2020 - 频谱正则化
六、请求处理—获取请求参数系列注解是怎样工作的?
伪RTOS-ProroThread在CH573芯片上的移植
C语言入门笔记 —— 初识
Redis集群(docker版)——从原理到实战超详细
五、请求处理—Rest映射是怎样实现的?
LeetCode刷题之第61题
LeetCode刷题之第24题
LeetCode刷题之第416题
LeetCode刷题之第1024题
每日一题-二分法