unity脚本API中OnCollisionEnter()、OnTriggerEnter()二者的区别

Unity中的OnCollisionEnterOnTriggerEnter两个函数在日常的开发中很常见但也容易混淆,下面说一说两者的区别。

请添加图片描述

碰撞器(Collider)与触发器(Trigger)的概念

碰撞器(Collider)和触发器(Trigger)都是Unity中用于检测物体之间交互的组件。它们的主要区别在于对物体之间交互的处理方式。

  • 碰撞器(Collider) 用于检测两个物体之间的碰撞。当两个物体进入彼此的碰撞边界时,它们会发生碰撞,此时会触发OnCollisionEnter函数。
  • 触发器(Trigger) 用于检测一个物体是否进入另一个物体的触发边界。当一个物体进入另一个物体的触发边界时,会触发OnTriggerEnter函数。

OnCollisionEnter与OnTriggerEnter的区别

  • 触发条件不同:OnCollisionEnter是在两个物体发生碰撞时触发,而OnTriggerEnter是在一个物体进入另一个物体的触发边界时触发。
    另外OnTriggerEnter需要在刚体中勾选Is Trigger选项。OnCollision则不需要。
    在这里插入图片描述

  • 处理方式不同:OnCollisionEnter通常用于实现物体的物理交互,如碰撞、弹跳等。而OnTriggerEnter通常用于实现一些特殊触发事件,如进入某个区域时触发特定行为。
    在这里插入图片描述

  • 参与对象数量不同:OnCollisionEnter只能处理两个物体之间的碰撞,而OnTriggerEnter可以处理一个物体进入多个物体的触发边界的情况。

  • 函数参数不同:OnCollisionEnter的参数是一个Collision对象,包含了与碰撞相关的信息,如参与碰撞的物体、碰撞点等。而OnTriggerEnter的参数是一个GameObject对象,表示触发该事件的物体。
    OnTriggerEnter(GameObject other)
    OnCollisionEnter(Collider other)

应用示例

通常游戏开发中,我们会有一个玩家和一个敌人的角色,当玩家进入敌人的触发边界时,敌人会识别并发出攻击。此时,我们可以使用OnTriggerEnter来实现这个功能。

void OnTriggerEnter(GameObject other)  
{  if (other.tag == "Player") // 玩家的标签为"Player"  {  // 玩家进入敌人的触发边界,敌人发出攻击  //攻击代码...}  
}

总结

OnCollisionEnterOnTriggerEnter虽然都是用于检测物体之间交互的函数,但它们的应用场景和处理方式有所不同。在实际开发中,我们需要根据具体开发需求选择合适的函数来实现所需的功能。

除此这两个函数外,还有跟两者配套使用的函数:

在这里插入图片描述

在这里插入图片描述

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nodejs+vue+ElementUi医院预约挂号系统3e3g0

本医院预约挂号系统有管理员,医生和用户。该系统将采用B/S结构模式,使用Vue和ElementUI框架搭建前端页面,后端使用Nodejs来搭建服务器,并使用MySQL,通过axios完成前后端的交互 管理员功能有个人中心,用户管…

JAVA程序流程控制

程序的流程控制一般分为3种:顺序结构、分支结构、循环结构 顺序结构:就是不加任何控制,代码从main方法开始自上而下执行 分支结构:就是根据条件判断是true还是false,有选择性的执行哪些代码。在Java语言中提供了两个格…

人工智能_机器学习071_SVM支持向量机_人脸识别算法_LFW人脸数据加载_与理解---人工智能工作笔记0111

然后我们继续来看 这里有个lfw_home可以看到这个数据是,包含了人脸数据 然后我们继续看,在我们的顶你用户目录下,如果安装了,sklearn就会有这样一个目录, scikit_learn_data目录,这个里面可以看到 可以看到这个文件夹中有个 lfw_home文件夹是对.zip文件夹的解压,这个下载以后…

0.618算法和基于Armijo准则的线搜索回退法

0.618代码如下: import math # 定义函数h(t) t^3 - 2t 1 def h(t): return t**3 - 2*t 1 # 0.618算法 def golden_section_search(a, b, epsilon): ratio 0.618 while (b - a) > epsilon: x1 b - ratio * (b - a) x2 a ratio * (b - a) h_…

mybatis-plus阻止全表更新与删除

BlockAttackInnerInterceptor 是mybatis-plus的一个内置拦截器&#xff0c;用于防止恶意的全表更新或删除操作。当你添加了这个拦截器后&#xff0c;它会检查即将执行的 sql语句&#xff0c;如果有尝试进行全表更新或删除的语句&#xff0c;该拦截器会阻止这些操作。 <!-- m…

似然函数的定义:

似然函数&#xff08;Likelihood function&#xff09;是一个统计学中的概念&#xff0c;用于在给定某些数据的条件下&#xff0c;评估不同参数下模型生成这些数据的概率。在概率论和统计学中&#xff0c;似然函数是固定数据并视参数为变量的函数&#xff0c;而概率函数则是固定…

L1-058:6翻了

“666”是一种网络用语&#xff0c;大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”&#xff0c;意思是“6翻了”&#xff0c;实在太厉害的意思。如果你以为这就是厉害的最高境界&#xff0c;那就错啦 —— 目前的最高境界是数字“27”&#xff0c;因为这…

微信小程序 文件下载、打开、转发

一.下载文件 wx.downloadFile({url: https://img.haihaina.cn/月度支出表.xls, filePath: wx.env.USER_DATA_PATH / 自定义名字.xlsx,success(res) {console.log(downloadFile,res)const filePath res.tempFilePathwx.openDocument({filePath: filePath,fileType: xlsx,succe…

算法-两数之和

题目描述&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。…

openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据

文章目录 openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据168.1 操作场景168.2 操作步骤168.3 示例 openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据 168.1 操作场景 gs_restore是…

【Linux】进程周边007之进程控制

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.进程创建 2.进程终止 2.…

【JAVA面试题】什么是代码单元?什么是码点?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 目录 前言 思路 代码单元&#xff08;Code Unit&#xff09;&#xff1a; 码点&#xff08;Code Point&#xff09;&#xff1a; 作…

java设计模式学习之【责任链模式】

文章目录 引言责任链模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用日志示例代码地址 引言 在现实生活中&#xff0c;常常会遇到这样的场景&#xff1a;一个请求或命令需要经过多个层级的处理。例如&#xff0c;一个行政审批流程可能需要通过多个部门的审…

蚂蚁集团5大开源项目获开放原子 “2023快速成长开源项目”

12月16日&#xff0c;在开放原子开源基金会主办的“2023开放原子开发者大会”上&#xff0c;蚂蚁集团主导开源的图数据库TuGraph、时序数据库CeresDB、隐私计算框架隐语SecretFlow、前端框架OpenSumi、数据域大模型开源框架DB-GPT入选“2023快速成长开源项目”。 &#xff08;图…

在Windows中如何安装XGBoost的C++版本进行模型训练和推理

1 前期软件及脚本准备 下载并安装 Git&#xff1a;从 Git 官方网站&#xff08;https://git-scm.com/downloads&#xff09;下载适用于 Windows 的 Git 安装程序&#xff0c;并按照安装程序的指示进行安装。 下载并安装 CMake&#xff1a;从 CMake 官方网站&#xff08;https:…

opencv入门到精通——图像上的算术运算

目录 目标 图像加法 图像融合 按位运算 目标 学习图像的几种算术运算&#xff0c;例如加法&#xff0c;减法&#xff0c;按位运算等。 您将学习以下功能&#xff1a;cv.add&#xff0c;cv.addWeighted等。 图像加法 您可以通过OpenCV函数cv.add()或仅通过numpy操作res …

第36节: Vue3 事件修饰符

在UniApp中使用Vue3框架时&#xff0c;你可以使用事件修饰符来更方便地处理用户交互事件。以下是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用事件修饰符&#xff1a; <template> <view> <button click.prevent"handleClick">Cli…

负载电容对晶振频率稳定性的影响

在电子系统中&#xff0c;晶振是产生精确频率的关键元件&#xff0c;而负载电容是影响晶振频率稳定性的重要因素之一。本文将深入探讨负载电容对晶振频率稳定性的影响&#xff0c;并分析如何通过合理的选择和设计来减小这种影响。 一、负载电容对晶振频率稳定性的影响 负载电…

End-to-End Object Detection with Transformers(DETR论文解析)

DETR:End-to-End Object Detection with Transformers 摘要引言3 DETR模型3.1 目标检测集合预测损失3.2 DETR体系结构摘要 我们提出了一种将目标检测视为直接集合预测问题的新方法。我们的方法简化了检测流程,有效地消除了许多手工设计的组件,如非极大值抑制程序或锚点生成,…

LangChain入门指南:定义、功能和工作原理

LangChain入门指南&#xff1a;定义、功能和工作原理 引言LangChain是什么&#xff1f;LangChain的核心功能LangChain的工作原理LangChain实际应用案例如何开始使用LangChain 引言 在人工智能的浪潮中&#xff0c;语言模型已成为推动技术革新的重要力量。从简单的文本生成到复…