Unity3D 碰撞器和触发器

2023-11-19

对于碰撞器和触发器经常忘记用法,这次主要记录下以便于能够复习用

 

1.碰撞器

发生条件:

1.碰撞的双方中一定至少要有一个Rigidbody存在,并且碰撞双方必须都要有碰撞体组件。

2.碰撞双方若只有一个有刚体,那么那个刚体一定要处于运动的状态下才会有碰撞事件发生。

用法:

    void OnCollisionEnter(Collision col)
    {
        //进入碰撞器执行的代码
    }
    void OnCollisionStay(Collision col)
    {
        //持续碰撞器执行的代码
    }
    void OnCollisionExit(Collision col)
    {
        //离开碰撞器执行的代码
    }

 

2.触发器

发生条件:

1、必须都要有碰撞器组件(Collider),其实上面的碰撞事件同样也需要这个前提条件。

2、必须有一个物体带刚体组件,并且处于运动状体中(包括主动运动去撞击别人和在运动过程中被别人撞击)。

3、两个碰撞器中至少有一个开启了IsTrigger。

注意:

一、产生触发事件的两个物体会相互穿越,准确的说是因为开启IsTrigger那个物体会被物理引擎锁忽略掉,所以会产生两个物体穿越的情况。

二、两个对象要么都收到碰撞事件,要么都收到触发事件,不会出现一个收到触发事件,一个收到碰撞事件的情况。

用法:

 void OnTriggerEnter(Collider col)
    {
        //进入触发器执行的代码
    }
    void OnTriggerStay(Collider col)
    {
        //持续在触发器执行的代码
    }
    void OnTriggerExit(Collider col)
    {
        //离开触发器执行的代码  
    }

 

额外用法:在控制一个物体A去撞另一个物体B时,不要直接去修改物体A的Transform的position属性,因为你会发现如果即使两者发生了碰撞也还是会穿越的,原因就在于我们是直接设置的坐标,如果物体A有刚体组件的话,应该用AddForce,给物体添加一个力,然后让物理引擎去让物体动,此时如果发生了碰撞的话,就不会穿越了。

 

3.关系

当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数; 
当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。 

碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性

如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D 碰撞器和触发器 的相关文章

  • Unity3D研究院之游戏开发中的人工智能AI

    人工智能这个东西在游戏中是非常重要的 人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑 说难了TA需要一个非常复杂的算法 本文我主要说说Unity3D中人工智能的脚本如何来编写 首先你应该搞清楚的一点AI脚本属于一个工具类脚本 工
  • Unity3D 地形(Terrain)设置

    这篇说的是Unity地形 关于Unity3D是什么 我就不多做解释了 由于工作原因 该系列原创教程不定期更新 每月必然有更新 谢谢各位 Unity地形 新建地形 如图在菜单中新建一个地形 就会在 中看到Terrain对象 如果要修改地形参数
  • Unity InputSystem 实现同一按键单击、双击、长按执行不同逻辑

    最近学习了一下Unity InputSystem 该系统可用于实现 管理复杂的操作逻辑 上限很高 但由于它有一定的学习成本 导致一些和我一样的小白一入门时不得要领 之前卡住我的一个需求就是通过InputSystem 实现同一按键单击 双击
  • Animator之RootMotion

    Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移 这个就是通过 applyRootMotion 来达成
  • unity多个贴图shader

    在一个Material上放多个贴图的测试 比如一个plane上放四个贴图 Shader aaa Properties MainTex Texture 2D white MainTex2 Texture 2D white MainTex3 T
  • Unity 实现选框选中物体

    最近在看RTS游戏视频注意到了选框功能 就尝试做了一下 功能实现 脚本挂载到Camera上 要不然OnPostRender 函数无法调用 rectMat新建一个材质球 设置成默认的Sprites就可以了 using System Colle
  • Unity中的单元测试

    我知道的单元测试有两种方法 1 从Unity的AssetStore窗口下载UnityTestTools 已下架了 2 使用TestRuner 2018 2 5以上版本有 我用的是2018 2 7 TestRuner的用法 操作窗口 Wind
  • 服务器时间管理器

    时间戳管理器 using System using UnityEngine public class SyncTime Singleton
  • 《Unity Shader入门精要》彩图版免费分享~~~~~

    这书很多地方都要币或者要钱 这里就免费分享了 下面是网盘链接 顺手点个赞或者评论一波呗 下载链接 链接 https pan baidu com s 137Y1nkB6h8HIvKOfwFPnbQ 提取码 f8dw 顺手点个赞 蟹蟹蟹蟹
  • 也想做一个绝地求生版的汽车控制移动,进来瞧瞧?(干货满满)

    控制车子移动 效果图附上 1 首先4个车轮复制一遍为车轮2备用 2 给车轮2全部添加wheel collider 只剩下车轮碰撞器和transform组件 3 给原版4个车轮添加脚本wheel 变量共有 面板赋值 依次添加车轮2里面的车轮c
  • 闲云:unity中不能识别monobehevior关键字的问题

    有时候一些小问题很恼人 如unity中新建脚本后不能识别monobehevior关键字 在vs2017右侧的解决方案中点击刷新图标 或者把不能识别的脚本添加到vs2017右侧的解决方案中的Assets中即可 还不行就点击 排除 然后再 添加
  • Unity动画系统详解5:BlendTree混合树是什么?

    摘要 Animator中有一个功能 用来解决多个动画之间的混合 经常用于移动动画之间的混合 这个功能叫做BlendTree 混合树 洪流学堂 让你快人几步 你好 我是跟着大智学Unity的萌新 我叫小新 这几周一起来复 yu 习 xi 动画
  • Unity里清除Console控制台Log的函数

    Log输出部分转发来自 http blog sina com cn s blog 13c4bf4b40102wz0r html 在控制台输出中 是开发者常用到的一种函数 通过Debug类来实现 打印字符串 Debug Log log 如果有
  • unity粒子特效附上贴图后播放动画

    转自 http jingyan baidu com article f96699bbb1a0d6894f3c1b77 html 参考 http www unitymanual com thread 2993 1 1 html dsign a
  • Input.GetAxis _ Unity3d

    Input GetAxis 获取轴 static function GetAxis axisName string float Description描述 Returns the value of the virtual axis iden
  • Unity3D:按键生成物件,Instantia…

    在按下按键之后 可以在画面中生成之前定义好了的物体 这里使用了Instantiate函数来生成 1 先在游戏中定一个空物件GameObject 创建空物件快捷键 ctrl shift n 2 在视图中放置 3 编写脚本 脚本 SpaceCh
  • unity的LOD组件

    本文转载自http blog csdn net huutu article details 52106468 LOD是Level Of Detais 的简称 多细节层次 在游戏场景中 根据摄像机与模型的距离 来决定显示哪一个模型 一般距离近
  • Unity中UI组件

    一 Canvers 画布组件 Canvers下面是添加Button和Image组件 Rect Transform 1 Position 坐标位置 2 Width Height 高宽尺寸 3 Anchors 锚点 4 Pivot中心点 即UI
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • Mecanim Any State

    Any State表示任意状态 任意状态是 一个一直存在的特殊状态 他的存在是为了保证你在无意转移至某个你当前正处于的特殊状态而准备的 为你的状态机中的每个状态设置相同的对外转移是一个快捷的方式 假如有Walk Run Fly Die这四个

随机推荐

  • Oracle 设定允许访问的IP地址

    开启按ip地址访问 修改 oracle10 app db network admin sqlnet ora 在文件最后加下列2行 vim sqlnet ora tcp validnode checking yes tcp invited n
  • 滑雪(记忆化搜索)

    题目 题解 记忆化搜索模板题 记忆化搜索的核心 本质是带剪枝的深搜 当某点的dp已赋值时 返回该值 其他情况进行深度搜索 模板 dfs u点 if u点的 dp 已经有值了 return u点的 dp 值 else 说明第一次到达u 则为u
  • Flume之:二、企业开发案例

    Flume之 二 企业开发案例 文章目录 Flume之 二 企业开发案例 三 企业开发案例 1 监控端口数据官方案例 2 实时读取本地文件到HDFS案例 3 实时读取目录文件到HDFS案例 4 flume监控Kafka gt Spark知识
  • QCC300x笔记(3) -- QCC3007开发调试经验

    哈喽大家好 这是该系列博文的第三篇 篇 lt lt 系列博文索引 快速通道 gt gt 写在前面 这篇博客主要记录 在使用QCC300x平台中所遇到的问题以及解决方法 会不定时更新 1 使用的堆栈空间大小超出或者全局变量超出 会报以下错误
  • R语言回归分析

    R语言回归分析 回归分析可以说是统计学的核心 它其实是一个广义的概念 通指那些用一个或多个预测变量 也称自变量或解释变量 来预测响应变量 也称因变量 效标变量或结果变量 的方法 通常 回归分析可以用来挑选与响应变量相关的解释变量 可以描述两
  • ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月...

    明敏 发自 凹非寺量子位 公众号 QbitAI ChatGPT太火爆谁不想上手试试 但注册复杂 服务器拥挤 着实有点麻烦 不过很快就有极客网友指路 说国内其实已经有类似的APP上线了 也是上知天文下知地理的那种 比如聊聊 三体 还会说自己喜
  • 股票与债券的区别与联系

    1 股票与债券的联系 2 股票与债券的区别
  • C# Debug.WriteLine 参数显示不对{0}

    最近使用这个函数调试 原始代码 StackTrace st new StackTrace new StackFrame true Debug WriteLine Stack trace for current level 0 st ToSt
  • PgAdmin中的数据库查询功能

    参考博客 https blog csdn net qq 28289405 article details 80249509 utm medium distribute pc relevant none task blog BlogComme
  • 2022-TCGA数据库重大更新后RNASeq的STAR-Counts数据的下载与整理

    TCGA GEO 文献阅读 数据库 理论知识 R语言 Bioconductor 服务器与Linux 最近有粉丝留言 TCGA数据库发生更新 下载的数据和之前的不一样 比如转录组 之前是HTSeq流程的数据 现在是STAR Counts的数据
  • Jupyter Error “bad file descriptor“ in VSCode

    Jupyter Error bad file descriptor in VSCode 直接跑这一行 pip install upgrade force reinstall no cache dir jupyter
  • 已知斐波那契数列 1 1 2 3 5 8… ,求出第10项的值

    1 1 1 2 3 5 8 首先我们可以在这些数中找到规律 斐波那契数列的规定是固定的 从第三项开始等于前两项的和 第一项和第二项固定为 1 在求第N项时 首先把前面两项相加 再重新给前两项赋值 2 我们可以把第三项设为 np 那第二项的值
  • iOS 17更新,让苹果失去了魅力!

    1 iOS17的更新缺乏新意 随着WWDC2023的落幕 苹果发布了iOS17的开发者测试版 不过 由于需要开发者账号才能抢先体验 许多果粉们无法第一时间尝试iOS17的新功能 但实际上 这次的更新并没有带来令人期待的亮点 放眼望去 iOS
  • 优秀软件测试工程师必备的8个能力!-(附思维导图)

    结合自己以往的工作经验 自己梳理出来一些材料 绝对原创 绝对干货 优秀的软件测试工程师必备的 8个能力 作为一名软件工程师 需要的能力并不多 但是要成为一名优秀的软件测试工程师 需要的能力就比较多了 自己整理出来8个方面 每个方面都会分成很
  • CLIP与CoOp代码分析

    CLIP与CoOp代码分析 CoOp是稍微改了下CLIP的text encoder CLIP代码 https github com OpenAI CLIP CoOp代码 https github com KaiyangZhou CoOp 输
  • 配置无线WLAN旁挂三层组网直接转发

    企业用户接入 WLAN 网络 以满足移动办公的最基本需求 且在覆盖区域内移动 发生漫游时 不影响用户的业务使用 使用 VLAN pool 作为业务 VLAN 可以避 免出现 IP 地址资源不足或者 IP 地址资源浪费 减小单个 VLAN 下
  • 有效的域名后缀列表

    Version 2016060300 Last Updated Fri Jun 3 07 07 01 2016 UTC AAA AARP ABB ABBOTT ABBVIE ABOGADO ABUDHABI AC ACADEMY ACCEN
  • ffmpeg命令详解_火爆抖音60帧视频制作教程详解

    针对目前火爆抖音的超清60帧视频 今晚写一篇详细的制作教程 供大家分享 声明 60帧视频制作教程详解 文章内容为本人原创 转载请注明出处 首先再做学做补帧教程之前 大家要明白帧率的提升只是画面流畅度的提升 而非画面清晰度的提升 但是两者是有
  • 怎么写文献综述

    文献综述是由原始文献中大量的数据 资料 不同观点加以梳理整合后所形成的 文献综述的撰写时要将客观资料与主观论断融为一体 但是不能述评鲜明的表达作者本人的观点和立场 文献综述需要包含以下内容 问题提出的背景 发展过程 基本理论 最新成就 存在
  • Unity3D 碰撞器和触发器

    对于碰撞器和触发器经常忘记用法 这次主要记录下以便于能够复习用 1 碰撞器 发生条件 1 碰撞的双方中一定至少要有一个Rigidbody存在 并且碰撞双方必须都要有碰撞体组件 2 碰撞双方若只有一个有刚体 那么那个刚体一定要处于运动的状态下