Unity(第十八部)物理力学,碰撞,触发、关节和材质

news/2025/2/21 7:01:57/

1、重力

刚体组件

英文中文描述
RigidBody刚体组件physics->rigidbody ,刚体组件使一个物体有了质量,重力等。,use gravity 勾选后,物体才会受到重力,会自动下落,取消勾选就不会。,,is kinematic 表示运动学刚体,此时物体质量为0,就不会受重力的影响。
 1. 质量2. 阻力3. 角阻力4. 使用重力(取消后,只是不受重力影响,阻力等还是受影响的)5. Is Kinematic(是运动学的,勾选后,不受物理影响)6. 插值(一般不用修改,插值是按照上一帧做插值,外推是按照下一帧做插值)7. 碰撞检测(离散的节省性能非连续检测高速物体检测不到,持续和连续动态是相对的快速的物体是连续动态不动的选择持续比较好但是浪费性能,没有翻译的Co...是连续检测性能低于持续和连续高于离散)8. Constraints(冻结位置是值某个方向不能运动,冻结旋转同理) 

2、碰撞的产生和监听

在这里插入图片描述

英文中文描述
Mesh Collider网格碰撞器
Sphere Collider球体碰撞器
  1. 碰撞中心(修改了碰撞中心会发生偏移)
  2. 碰撞半径(大了会间隔碰撞,下了会穿透一部分)

碰撞组件实际碰撞发生的是碰撞线框
碰撞条件

  1. 至少有一个物体有刚体组件
  2. 只有物体都有碰撞器的时候才会发生碰撞
//设置一个爆炸的预设体
public gameObject Prefab;
//监听发生碰撞private void OnCollisionEnter(Collision collision){ //创建一个新的爆炸物体Instantiate(Prefab, transform.position, Quaternion.identity)//销毁自身(火焰物体) Destroy(gameObject); //碰撞到的物体信息Debug.Log(colision.gameObject.name);Debug.Log("碰撞发生!");}
//持续碰撞中private void OnCollisionStay(Collision collision){ Debug.Log("持续碰撞中!");}
//结束碰撞private void OnCollisionExit(Collision collision){ Debug.Log("结束碰撞!");}

3、触发

触发条件 和碰撞器一样
在这里插入图片描述

  1. 至少有一个物体有刚体组件
  2. 只有物体都有碰撞器的时候才会发生碰撞,只是其中一个碰撞器设置成触发器;一般触发器设置成看不见的

可移动的游戏物体脚本

	void Update(){//水平轴float horizontal = Input.GetAxis("Horizontal");//垂直轴float vertical = Input.GetAxis("Vertical");//创建成一个方向向量Vector3 dir = new Vector3(horizontal, 0, vertical);//朝向量方向移动Translate是平移,*Time.dalteTime是指每秒transform.Translate(dir*Time.dalteTime);}

触发器物体的脚本
物体Cube (1)是墙壁,触发后执行的物体,下面代码是触发后Cube (1)墙体消失

    private void OnTriggerEnter(Collider other){GameObject cube = GameObject.Find("Cube (1)");if (cube != null){cube.SetActive(false);}}private void OnTriggerStay(Collider other){}private void OnTriggerExit(Collider other){}

4、物理关节(铰链,弹簧等)

添加组件的时候搜索关节,会有很多,
在这里插入图片描述

铰链关节

可以做固定轴旋转
Anchor 是轴的位置
轴是轴的方向
Use Motor 自动
在这里插入图片描述

弹簧关节

需要两个物体链接,在a物体加弹簧组件,把b物体拖入刚体Connected Body 就链接了,其他属性不细说了
在这里插入图片描述

固定关节

和弹簧类似, 需要两个物体链接,在a物体加弹簧组件,把b物体拖入刚体Connected Body 就链接了,其他属性不细说了
但是性质不同,就会固定在一个物体上,无法移动等;类似胶水,可以设置断开力,到达足够力时就断开链接

其他关节暂时不讲

5、物理材质

不同材质有不同的效果、如冰面和土地的摩擦力不同;
新建-》物理材质,可以设置摩擦力弹力等;
给物体添加材质

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1366881.html

相关文章

SQL进阶(三):Join 小技巧:提升数据的处理速度

复杂数据结构处理:Join 小技巧:提升数据的处理速度 本文是在原本sql闯关的基础上总结得来,加入了自己的理解以及疑问解答(by GPT4) 原活动链接 用到的数据:链接 提取码:l03e 目录 1. 课前小问…

【airtest】自动化入门教程(一)AirtestIDE

目录 一、下载与安装 1、下载 2、安装 3、打开软件 二、web自动化配置 1、配置chrome浏览器 2、窗口勾选selenium window 三、新建项目(web) 1、新建一个Airtest项目 2、初始化代码 3、打开一个网页 四、恢复默认布局 五、新建项目&#xf…

lc 每日一题 2024 - 03 - 01 划分型dp

链接 : . - 力扣(LeetCode) 思路 : 子集划分型dp , 设置dp[i1]表示前i个数字能否有效划分; 那么一个划分好的数组 两个相等的数字 , 新形成的数组也是有效划分数组; 同理,加上三个相等 或 三个递增的数字 &…

Spring 学习记录

Spring 学习记录 1. Spring和SpringFrameWork1.1 广义的Spring2.1 狭义的Spring2.3 SpringFrameWork / Spring框架图 2. Spring IOC容器(即上图中的Core Container)2.1 相关概念 (IOC DI 容器 组件)2.2 Spring IOC容器的作用2.3 Spring IOC容器接口和具体实现类 3. Spring IOC …

批量复制并重命名文件夹,一键实现目录更新!让文件夹管理变得如此简单!

在日常生活和工作中,我们经常需要处理大量的文件夹,例如备份资料、整理项目文件等。然而,传统的文件夹管理方式往往繁琐且易出错,特别是在需要批量复制并重命名文件夹时。为了解决这一难题,我们特别推出了一款批量复制…

MySQL5.7.44版本压缩包在Win11系统快速安装

一.背景 主要还是为了公司的带徒弟任务。我自己也喜欢MySQL的绿色版本。 1.软件版本说明 MySQL版本:5.7.44 压缩包版本,相当于绿色版。当然,你也可以使用window系统的Installer版本去安装。 操作系统:Win11家庭版 二.MySQL软…

真心提问,现在入坑嵌入式好还是测试好呢?

真心提问,现在入坑嵌入式好还是测试好呢? 在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料,让我不…

Java毕业设计-基于springboot开发的家政服务管理平台系统-毕业论文+答辩PPT(有源代码)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、前台模块设计2、后台功能模块2.1管理员功能模块2.2用户功能模块2.3服务人员功能模块 四、毕设内容和源代码获取总结 Java毕业设计…