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

unity3d入门教程七

unity3d入门教程七

  • 17.1物理系统
  • 17.2静态刚体
  • 17.3刚体的碰撞
  • 17.4刚体的反弹
  • 18.1运动学刚体
  • 18.2碰撞检测
  • 18.3碰撞事件回调
  • 18.4目标的识别
  • 18.5碰撞的规避

17.1物理系统

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

在这里插入图片描述

在物理系统中的物体具有质量和速度的是刚体
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不用写代码就会自由落体运动了

在这里插入图片描述

17.2静态刚体

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

在这里插入图片描述

给 ‘地面’ 添加一个 Rigidbody 2D 组件,使之成为刚体

将刚体类型设为 Static
在这里插入图片描述

此时地面就静止不动的刚体

上面的求可以下落,只是此时两者无碰撞,一直下落,下节讲碰撞的效果
在这里插入图片描述

17.3刚体的碰撞

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

上一节的球落地会直接穿过地面

在这里插入图片描述

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

17.4刚体的反弹

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

在这里插入图片描述

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

18.1运动学刚体

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

在这里插入图片描述

在这里插入图片描述

将飞机设置为kinematic刚体后,因为无质量,变不会自由下落,但会与其余刚体发生碰撞是能检测出来的

18.2碰撞检测

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

在这里插入图片描述

1 添加两个物体,‘飞机’ 和 ‘小球’

2 添加刚体组件 Rigidbody 2D
设为 Kinematic
在这里插入图片描述

3 添加 碰撞组件 Box Collider2d
勾选 Is Trigger ( 碰撞触发器 )
在这里插入图片描述

4 添加脚本组件 , 重写事件函数OnTriggerEnter2D()

    void OnTriggerEnter2D(Collider2D collision){Debug.Log("飞机:探测到了碰撞 ... ");
}

小球和飞机刚体碰撞组件都添加了,飞机的脚本如下
小球暂无脚本
在这里插入图片描述
在这里插入图片描述

球不动,飞机向上飞,当碰撞到小球时,就会输出控制台

此时给小球添加脚本
在这里插入图片描述
在这里插入图片描述

碰撞后,小球和飞机都进行了输出
在这里插入图片描述

18.3碰撞事件回调

在这里插入图片描述

碰撞事件回调,有三个:
OnTriggerEnter2D :两个碰撞体开始相遇
OnTriggerStay2D : 两个碰撞体接触中
OnTriggerExit2D: 两个碰撞体分开

一般只使用第一个第一次碰撞的函数即可,后面两个方法用不到
在这里插入图片描述
在这里插入图片描述

只要拿到组件无论是collider2D还是transform等组件,有了组件就可以知道其挂载的游戏对象的名称等信息

通过collider2D拿到碰撞到的游戏对象的名称等信息

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

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

在这里插入图片描述

18.4目标的识别

在这里插入图片描述

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

1 添加一个新的 Tag
菜单里找 Edit | Project Settings | Tags and Layers …
在这里插入图片描述

点 + 号,可以添加一个自定义 Tag
点 – 号,可以删除一个自定义的 Tag , 重启项目后生效

2 设置 Tag
在场景中选中一个物体,在 Inspector 窗口里设置 Tag
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

18.5碰撞的规避

此部分比较难,可以练习一下,前四节必须掌握

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

在这里插入图片描述

系统碰撞的时候自动计算,减轻CPU的消耗

在这里插入图片描述

http://www.lryc.cn/news/441393.html

相关文章:

  • python植物大战僵尸项目源码【免费】
  • 目前人工智能时代,程序员如何保持核心竞争力?
  • golang学习笔记20——golang微服务负载均衡的问题与解决方案
  • 基于微信小程序的健身房管理系统
  • 【裸机装机系列】6.kali(ubuntu)-图形界面优化-让linux更适合你的使用习惯
  • 新的突破,如何让AI与人类对话变得“顺滑”:Moshi背后的黑科技
  • torch.embedding 报错 IndexError: index out of range in self
  • rocky9虚拟机配置双网卡的详细过程
  • 索引的介绍
  • Web后端服务平台解析漏洞与修复、文件包含漏洞详解
  • 树莓派介绍与可安装的操作系统
  • Qt常用控件——QTextEdit
  • docker-compose 部署 flink [支持pyflink]
  • C++中string类的模拟实现
  • C++函数在库中的地址
  • 图像生成大模型imagen
  • Redis集群知识及实战
  • 数据报表轻松管理,强大“后台”不可少
  • 简易CPU设计入门:本CPU项目的指令格式
  • Datawhile 组队学习Tiny-universe Task01
  • MCU与SOC的区别
  • 51单片机-DS18B20(温度传感器)AT24C02(存储芯片) IIC通信-实验2-温度实时监测(可设置阈值)
  • Vue2接入高德地图API实现搜索定位和点击获取经纬度及地址功能
  • msvcp140.dll丢失如何解决?msvcp140.dll丢失的多种解决方法
  • 高效财税自动化软件如何提升企业财务工作的效率与准确性
  • Leetcode 3286. Find a Safe Walk Through a Grid
  • shell脚本语法
  • TCP 拥塞控制:一场网络数据的交通故事
  • (黑马点评) 五、探店达人系列功能实现
  • SQLiteDatabase insert or replace数据不生效