原文链接:Unity触发碰撞介绍

3D触发器与碰撞器

触发信息检测:

  1.MonoBehaviour.OnTriggerEnter(Collider collider)当进入触发器

  2.MonoBehaviour.OnTriggerExit(Collider collider)当退出触发器

  3.MonoBehaviour.OnTriggerStay(Collider collider)当逗留触发器

碰撞信息检测:

  1.MonoBehaviour.OnCollisionEnter(Collision collision) 当进入碰撞器

  2.MonoBehaviour.OnCollisionExit(Collision collision) 当退出碰撞器

  3.MonoBehaviour.OnCollisionStay(Collision collision) 当逗留碰撞器

2D触发器与碰撞器

触发信息检测:

  1.MonoBehaviour.OnTriggerEnter2D(Collider2D)当进入2D触发器

  2.MonoBehaviour.OnTriggerExit2D(Collider2D)当退出2D触发器

  3.MonoBehaviour.OnTriggerStay2D(Collider2D) 当逗留2D触发器

碰撞信息检测:

1.MonoBehaviour.OnCollisionEnter2D(Collision2D) 当进入2D碰撞器

2.MonoBehaviour.OnCollisionExit2D(Collision2D) 当退出2D碰撞器

3.MonoBehaviour.OnCollisionStay2D(Collision2D)当逗留2D碰撞器

物体发生碰撞的必要条件:

  碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。

碰撞器:一群组件,它包含了很多种类,比如:Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。

触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。

一:产生碰撞的条件

1:若要产生碰撞,必须双方都要有碰撞器。

2:运动的一方一定要有刚体,另一方有无刚体无所谓。

注:如果运动的一方无刚体,它去碰撞静止的刚体,相当于没有装上。

二:接触的两种方式

1:Collision碰撞,造成物理碰撞,可以在碰撞时执行OnCollision事件。

2:Trigger触发,取消所有的物理碰撞,可以在触发时执行OnTrigger事件。

注:两个物体接触不可能同时产生碰撞+接触,最多产生一种。但是可以AB产生碰撞,AC产生触发。

三:产生不同方式接触的条件

1:Collision碰撞

(1):双方都有碰撞体

(2):运动的一方必须有刚体

(3):双方不可同时勾选Kinematic运动学。

(4):双方都不可勾选Trigger触发器。

2:Trigger触发

(1):双方都有碰撞体

(2):运动的一方必须是刚体

(3):至少一方勾选Trigger触发器

四:接触后事件细分为Enter,Stay,Exit三种(以Trigger为例,分别为OnTriggerEnter、OnTriggerStay、OnTriggerExit)

1:Enter事件表示两物体接触瞬间,会执行一次。

2:Stay事件表示两物体持续接触,会不断执行。

3:Exit事件当两物体分开瞬间,会执行一次。

五:碰撞规则表

如果文章对您有帮助的话请点个赞鼓励下博主吧!

@Liam:有用→收藏→关注   听说长得好看的人都这么做!

Unity触发碰撞的更多相关文章

  1. 安卓机在按HOME键时,UNITY触发的APPLICATION_PAUSE事件

    安卓机在按HOME键时,UNITY触发的APPLICATION_PAUSE事件 此时安卓程序会返回,在这一瞬间,程序可以通过SOCKET发送数据包给服务器告知, 经测试在这短暂的时间内,这个数据包能发 ...

  2. Unity -- Collider(碰撞器与触发器)

    (2d与3d的Collider可以相互存在,但是无法相互协作,如2d是无法检测3d的,反之,一样) 在目前掌握的情况分析,在Unity中参与碰撞的物体分2大块:1.发起碰撞的物体.2.接收碰撞的物体. ...

  3. unity 2d碰撞/ui组件碰撞

    首先,ugui的碰撞是可以用Collision2D跟Rigidbody2D实现的(就跟3D碰撞一样).之前试过不可以主要问题正在于Collision2D以及Rigidbody的设置上. 碰撞双方都添加 ...

  4. unity, 忽略碰撞

    一,layer之间忽略碰撞. Edit->Project Settings->Physics->Layer Collision Matrix 二,collider之间忽略碰撞. vo ...

  5. unity让碰撞只发生一次

    碰撞发生在帧的开始,所以你可以检测到冲突,并在LateUpdate复位: private bool hasCollided = false; void OnCollisionEnter(Collisi ...

  6. unity, 如果碰撞使用2d物理,为防止颤动,需将更新position的代码写在FixedUpdate里

    例如我为主角添加了一个circle collider 2d,和一个rigidbody 2d,为障碍物添加了一个circle collider 2d. 然后我在主角的Update函数里更新位置让主角由A ...

  7. 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析

    自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...

  8. 【Unity入门】碰撞检测与触发检测

    版权声明:本文为博主原创文章,转载请注明出处. 在Unity里面,游戏物体的碰撞我们可以通过刚体组件(Rigidbody)和碰撞器组件(Collider)来进行检测.首先在场景里面添加一个Plane面 ...

  9. 【Unity探究】物理碰撞实验

    这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进 ...

随机推荐

  1. FastDFS依赖无法导入

    FastDFS依赖无法导入 fastdfs-client-java 导入爆红 <!-- FastDFS--> <dependency> <groupId>org.c ...

  2. 分析Red Hat sosreport输出的方法

    分析Red Hat sosreport输出的方法? Modified on: Fri, 31 May 2019 20:20:02 +0800 有一段时间(自EL 4.6以来),Red Hat嵌入了sy ...

  3. Python检查 文件备份是否正常 云备份进程是否正常运行

    场景:服务器自动备份数据库文件,每两小时生成一个新备份文件,通过云备份客户端自动上传,需要每天检查是否备份成功. 实现:本脚本实现检查文件是否备份成功,进程是否正常运行,并且发送相关邮件提醒. #! ...

  4. Scala 安装与配置

    安装准备 由于 Scala 运行于 Java 平台,因此 Scala 之前需要确保系统安装 JDK Windows 中安装 Scala 1. 下载 scala-2.11.2.msi 安装包 点击安装文 ...

  5. Docker的镜像及容器常用操作(2)

    一.docker镜像 镜像(docker image) --- Docker 运行容器之前需要本地存在镜像,若本能地不存在,那么 Docker 会找默认镜像仓库( Docker Hub 公共注册服务器 ...

  6. 067.Python框架Django之DRF视图类

    一 关于视图类的一下概念 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. ...

  7. Java 关键字详解

    Java 关键字是 Java 语言中被赋予特殊意义的一些单词(每个关键字都代表着不同场景下的不同含义),不可以把它当作标识符来使用(不能用作变量名.方法名.类名.包名和参数名等).Java 中的关键字 ...

  8. C语言的指针数组与指针数组

    一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...

  9. 如何在idea中将项目生成API文档(超详细)(Day_32)

    1.打开要生成API文档的项目,点击菜单栏中的Tools工具,选择Generate JavaDoc 2.打开如下所示的Specify Generate JavaDoc Scope 界面 3.解释下Ot ...

  10. Spring 实例化方式有几种?为什么会用到 Cglib?

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! <Spring 手撸专栏>目录 [x] 第 1 章:开篇介绍,我要带你撸 Spri ...