当前位置: 首页 > news >正文

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

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.lryc.cn/news/308636.html

相关文章:

  • 内网搭建mysql8.0并搭建主从复制详细教程!!!
  • MYSQL 解释器小记
  • 具身智能计算系统,机器人时代的 Android | 新程序员
  • win11开启IPV6并手动设置地址
  • WPF中如何设置自定义控件
  • 【Leetcode每日一题】二分查找 - 寻找旋转排序数组中的最小值(难度⭐⭐)(22)
  • QT C++实战:实现用户登录页面及多个界面跳转
  • 我的世界游戏服务器平台推荐哪里找?
  • 用于制作耳机壳的倒模专用UV树脂有什么特点?
  • 将c、c++变为python
  • golang学习7,glang的web的restful接口结构体传参
  • python模型训练
  • 逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例
  • 超越CPU和GPU:引领AI进化的LPU
  • MySQL 逗号分隔查询--find_in_set()函数
  • 【物联网应用案例】智能农业的 9 个技术用例
  • 前端开发——ElementUI组件的使用
  • Unity编写Shader内置各种矩阵和方法介绍
  • 初学者如何使用QT新建一个包含UI界面的C++项目
  • 韦东山嵌入式Liunx入门驱动开发四
  • ubuntu基础操作(1)-个人笔记
  • Spring Cloud2022之OpenFeign使用以及部分源码分析
  • 【非比较排序】计算排序算法
  • 数据结构与算法 - 数组与二分查找 + Leetcode典型题
  • SQL进阶(三):Join 小技巧:提升数据的处理速度
  • 开发知识点-.netC#图形用户界面开发之WPF
  • 基于springboot实现流浪动物救助网站系统项目【项目源码+论文说明】
  • 灰度负载均衡和普通负载均衡有什么区别
  • 【二分查找】朴素二分查找
  • Windows Docker 部署 Redis