原文链接: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. 排坑·ASCII码为160的空格(nbsp)

    阅文时长 | 2.83分钟 字数统计 | 1345.2字符 『排坑·ASCII码为160的空格(nbsp)』 编写人 | SCscHero 编写时间 | Wednesday, September 9, ...

  2. CSS3文本样式

    目录 文本阴影 text-shadow 文本轮廓 text-outline 文本换行 word-break normal break-all keep-all word-wrap 新文本属性 text ...

  3. groovy脚本语言基础1

    一 搭建groovy环境 安装JDK [root@node1 ~]# yum  -y install java-11-openjdk 官网下载groovySDK下载 https://groovy.ap ...

  4. Linux_源码安装包管理理论概述

    一.源码包基本概述 1️⃣:源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言 2️⃣:Linux上的C语言编译器叫做gcc,利用 ...

  5. Centos 6.5 启动报错 "Kernel panic - not syncing: Attempted to kill init"解决办法

    某一天,开发同事突然告诉我服务器上自己的虚拟机连不上了,我登陆到服务器CAS管理界面,重启虚拟机后发现报错了 问题:Kernel panic - not syncing: Attempted to k ...

  6. IDEA 快速上手指南(全配置)(Day_23)

    Idea快速入门指南 1.安装 1.1.安装 我们使用的是2017.3.4版本: 双击打开, 选择一个目录,最好不要中文和空格: 然后选择桌面快捷方式,请选择64位: 然后选择安装: 开始安装: 然后 ...

  7. unity 2017 卡在 loading界面

    看了网上很多方法,都不奏效. 提供一个简单的方法,不妨一试! 打开其他版本unity,登陆你的账户,再打开unity2017即可!

  8. 『言善信』Fiddler工具 — 2、HTTP请求内容详解

    目录 1.HTTP协议介绍 2.使用Fiddler抓取一个请求 3.НТТP请求报文 (1)НТТP请求报文说明 (2)请求行 (3)请求头(Request Header) (4)请求体 4.НТТР ...

  9. .NET平台系列13 .NET5 统一平台

    系列目录     [已更新最新开发文章,点击查看详细] 时机决定一切,对于 .NET5 也是如此.实际上微软.NET团队在开始开发 .NET Core 时,对 .NET Framework 的全面重写 ...

  10. macOS Big Sur 11.4 (20F71) 正式版(DMG、ISO、IPSW),百度网盘下载

    本站提供的 macOS Big Sur 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装. 请访问原文链接:https://sy ...