【Unity入门计划】基本概念(2)-触发器 Trigger

目录

参考

触发事件

触发器与碰撞体

碰撞体检测

碰撞检测的3种方法

碰撞检测实现的条件

触发器与碰撞体的关系

触发检测

碰撞体的Is Trigger选项

触发检测的3种方法

触发检测实现的条件

触发器应用情景


参考

Unity3D基础15:触发器_Jaihk662的博客

 Triggers 模块 - Unity 手册

碰撞器检测和触发器检测 - 简书 (jianshu.com)

在添加碰撞体组件时会有选择“是否是触发器”——Is Trigger的选项,勾选这个复选框后,刚体移动的时候就会穿过碰撞体。

在了解触发器之前,可以了解一下什么是触发事件。

触发事件

  • 触发事件——当绑定了碰撞体的游戏对象进入到另一个游戏对象的触发范围内
  • 触发事件发生时,不会发生直接的碰撞,而是——只要进入了触发器区域就会执行某些操作

触发器与碰撞体

碰撞体检测

Unity中碰撞体Coliider是一类组件,有很多种类。

碰撞检测的3种方法

  • 两个游戏对象的碰撞器刚接触时(注意这里不是游戏对象接触,而是游戏对象的碰撞器Collider组件接触),调用一次OnCollisionEnter()函数
  • 只要两个碰撞体一直在接触,就会一直调用OnCollisionStay()函数
  • 两个碰撞体相互分离时,调用一次OnCollisionExit()函数

碰撞检测实现的条件

两个游戏对象A和B实现碰撞检测

  • 运动的对象一定要是刚体,A和B至少有一个是刚体
  • A和B必须都是碰撞体(Is Trigger必须都关闭,不能是触发器)
  • A和B可以互相检测碰撞(都挂一个碰撞检测的script)

触发器与碰撞体的关系

  • 在Unity中,检测碰撞发生的方式有两种:利用触发器检测&利用碰撞体检测
  • 碰撞体可以看成是触发器的载体,触发器只是碰撞体的一个属性

触发检测

碰撞体的Is Trigger选项

勾选后,碰撞体就成了一个触发器,此时碰撞体的边界就成了触发器的区域。

当触发事件发生后,刚体不会与碰撞体物体发生直接的碰撞,而是直接穿透碰撞体。

触发检测的3种方法

  • 如果碰撞体组件勾选了Is Trigger的选项,当触发事件发生时会调用OnTriggerEnter(Collier)函数
  • 当仍在触发器范围内时,会调用OnTriggerStay(Collier)函数
  • 当离开触发范围内时,会调用触发器的OnTriggerExit(Collier)函数

触发检测实现的条件

当A和B两个对象实现触发检测

  • 运动的那个对象必须是刚体
  • A和B只要有一个是触发器,就可以实现触发检测
  • A和B可以互相实现触发检测(都挂一个触发检测的script)

触发器应用情景

当我们想要检测到物体之间的接触,又不想让碰撞检测影响物体的移动,这时候就可以用到触发器,比如下列情况就适合用触发器实现

  • 检测物体是否经过地图上的某个区域
  • 人靠近门的位置门自动打开
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九九345

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值