当前位置:网站首页>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);
}
}
}边栏推荐
- 【ts】typescript高阶:映射类型与keyof
- (C语言)strlen、strcpy、strcat、strcmp、strstr函数的模拟实现
- 八、请求处理之自定义类型参数绑定原理
- 八、响应处理——ReturnValueHandler匹配返回值处理器并处理返回值原理解析
- [Pytorch study notes] 11. Take a subset of the Dataset and shuffle the order of the Dataset (using Subset, random_split)
- LeetCode刷题之第129题
- 三、自动配置源码分析
- Cocos Creator开发中的事件响应
- Blender软件介绍与使用心得
- Lua,ILRuntime, HybridCLR(wolong)/huatuo热更对比分析
猜你喜欢
随机推荐
framebuffer应用编程及文字显示(1)
栈区中越界可能造成的死循环可能
网络信息安全运营方法论 (下)
三、自动配置源码分析
每日一题-合并K个升序链表-0722
常用 crud 的思考和设计
链表章6道easy总结(leetcode)
七、请求处理——Map、Model类型参数处理原理
四、Web场景之静态资源配置原理
每日一题-两数相加-0711
如何使用Houdini进行程序化优化?
网络ID,广播地址,掩码位数计算
电子产品量产工具(4)-UI系统实现
ACL 的一点心得
六、请求处理—获取请求参数系列注解是怎样工作的?
每日一题-无重复字符的最长子串-0712
dataframe 常用操作
Leetcode刷题——对链表进行插入排序
论那些给得出高薪的游戏公司底气到底在哪里?
虚幻引擎5都有哪些重要新功能?









