该函数触发的条件:

1、两个物体都必须有碰撞器(Collider)组件;

2、其中一个物体的碰撞器(Collider)的IsTrigger属性必须勾上;

3、最重要的一点,其中一个物体必须有刚体(Rigidbody)组件。如果是一个运动的物体(如子弹)去碰撞一个静止的物体,则刚体(Rigidbody)组件必须加在运动的物体上,否则无法触发OnOnTriggerEnter函数。所以这时候子弹身上就要加一个Rigidboyd而不是character controller

Bug描述:游戏主角在静止状态下,一个自动运动的敌人碰撞主角,如果敌人身上没有刚体(Rigidbody)组件,主角则不会受到伤害(不会执行OnTriggerEnter函数中的代码)。

就是发生碰撞的主体一定是要带刚体的,即只有带刚体的碰撞体去撞其他碰撞体时,双方才会收到碰撞事件,比如:

一、控制A(刚体加碰撞体)撞击 静止的B(只有碰撞体),双方能收到碰撞事件。

二、控制B(只有碰撞体)撞击 静止的A(刚体加碰撞体),双方收不到碰撞事件。

三、让A(刚体加碰撞体)自由下落,然后控制B(只有碰撞体)去撞击A,双方能受到碰撞事件。

得出的结论似乎是如果碰撞双方只有一个有刚体,那么那个刚体一定要处于运动的状态下才会有碰撞事件发生。

此外还有两点:

一、产生触发事件的两个物体会相互穿越,isTrigger检测的是可穿越碰撞,准确的说是因为开启IsTrigger那个物体会被物理引擎锁忽略掉,所以会产生两个物体穿越的情况。如果人物有Rigidbody,而且想让人物和地面产生碰撞事件且不穿过地面,可以不勾选isTrigger,用OnCollisionEnter(Collision collison)检测碰撞。

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

可以参看这篇文章http://blog.csdn.net/monzart7an/article/details/22739421

转载于:https://www.cnblogs.com/vaecn/p/7190697.html

Unity中OnTriggerEnter条件以及isTrigger的一个问题相关推荐

  1. unity添加对象实例_在Unity中,如何通过值复制一个GameObject,以便在实例化之前修改它?...

    如果你想结合实例上运行几个GameObjects创建一个场景,你可以创建一个名为generateEnviroment.cs的脚本(只是一个示例名称),那么你应该p将一个或多个GameObjects作为 ...

  2. Unity中的数学基础——矩阵

    一:概念 --矩阵是一个按照长方阵列排列的复数(形如z=a+bi,a和b均为实数的数称为复数)或实数集合 --是一个2*3的矩阵,是一个3*2的矩阵,一个m*n的矩阵A中,一共有m行,n列,一共有m* ...

  3. [转]解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式

    在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上.这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后面 ...

  4. Cinemachine教程 | Unity中如何制作路径动画?

    摘要:在Unity中制作路径动画是有挺多方式的,基于Cinemachine的Dolly Path是一个简单便捷的方法,咱们来快速的学习一下吧! 洪流学堂,让你快人几步.你好,我是跟着大智(VX: zh ...

  5. unity 控制点 贝塞尔曲线_在Unity中使用贝塞尔曲线(转)

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...

  6. Unity3D研究院之Unity中连接本地或局域网MySQL数据库

    用户名 Email 游戏蛮牛 手机端 开启辅助访问 腾讯QQ 立即注册 登录 用户名 自动登录  找回密码 密码 登录  注册帐号 [Unity5.X版本开始预售啦!] 扫一扫,访问微社区 </ ...

  7. Unity中的旋转和矩阵操作

    Definition for Matrix4x4 is from unity                 Matrix4x4 matrix = new Matrix4x4();           ...

  8. Unity中UI系统——IMGUI(GUI)

    1.工作原理和主要作用 using System.Collections; using System.Collections.Generic; using UnityEngine;public cla ...

  9. 木木的Unity学习笔记(四)—— Unity中的柏林噪声(Perlin Noise)

    木木的Unity学习笔记(四)-- Unity中的柏林噪声 柏林噪声是一个非常强大算法,经常用于程序生成随机内容,在游戏和其他像电影等多媒体领域广泛应用.算法发明者Ken Perlin也因此算法获得奥 ...

最新文章

  1. html 如何让div刷新页面,页面刷新.html
  2. 对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起
  3. [css] 你有没有使用过“形似猫头鹰”(例:`* + *{ ... }`) 的选择器?
  4. 电脑常见问题_电脑常见问题解决方法(二)
  5. Visual Studio 安装OpenCV及问题总结
  6. 使用Java 10调用C/C++动态链接库dll之HelloWorld
  7. OFDM专题之多径效应引起的码间串扰问题
  8. 谷歌浏览器正式版(稳定版)离线安装包下载大全
  9. CPU 和 GPU - 异构计算的演进与发展
  10. 全网最全软件测试面试题含答案(性能测试+功能测试+接口测试+自动化测试)
  11. Convolutional Neural Networks for Sentence Classification用于句子分类的卷积神经网络
  12. 每个人的心里都有两头狼
  13. bv2av知乎答案验证
  14. ThinkPHP5之Ajax分页
  15. PostgreSQL学习笔记(更新ing)+c# 使用ef连接数据库postgreSQL
  16. mysql带有子查询的like查询
  17. Php生成图片的大小单位是cm,图样中的尺寸大小是以厘米为单位 ()
  18. iphone手机系统回退、降级
  19. 如何做好企业公众号的专属微社区?满足内部员工交流互动
  20. VC、C++彩信接口开发经验及具体开发实现

热门文章

  1. Linux 下如何进入 MySQL 命令行
  2. MVZ2Android,植物大战僵尸mvz2
  3. C++创建桌面应用程序:处理对话框DialogBox
  4. ES6 lterator迭代器是个什么东西?有什么用?
  5. Java:Lterator迭代器
  6. php app 推送原理,微信公众号开发的那点事第一篇——消息推送原理
  7. 计算机重启恢复系统怎么操作,电脑只要关机重启系统就会自动还原?-电脑怎么系统还原...
  8. 我们能做出量子计算机却至今摸不透量子力学,我们能做出量子计算机 却至今摸不透量子力学...
  9. 那个全是成人游戏的Steam平台,可能真的要凉了!
  10. Godaddy服务器上关于ASP.NET网站建设一些经验 - 防SQL注入攻击(三)