Unity3D 碰撞关系表 (转)

几个类型碰撞器:

1. 静态碰撞器: 就是只有碰撞器,但没有刚体的

2.刚体碰撞器: 带Rigidbody的碰撞器,这个是最基本的碰撞器

3.运动学刚体碰撞器: 带Rigidbody, 而且Rigidbody的IsKinematic打勾的,注意这个碰撞器是不能加力的,只能修改他的transform才能移动

Triggers 触发器

仅需要选中Inspector中的IsTrigger属性选择框。触发器不受物理引擎控制,当和一个触发器发生碰撞时会发出三个独特的触发信息,为了使两个触发器碰撞时发出碰撞事件,其中一个必须包含刚体.

今天遇到的一个情况是:如果刚体碰撞器不动,静态碰撞器去碰撞,则不会触发任何信息,而如果静态碰撞器不动,刚体碰撞器(包括运动学刚体碰撞器)去碰撞静态碰撞器,则会触发碰撞,如果是触发器,则会触发事件。所以下面的表格提供了触发的条件,但主动性大家也还需要注意,不然要纠结一段时间的。

Collision detection occurs and messages are sent upon collision
碰撞后有碰撞检测并有碰撞信息发出
  Static Collider
静态碰撞器
Rigidbody Collider
刚体碰撞器
Kinematic 
Rigidbody Collider
运动学刚体碰撞器
Static 
Trigger Collider
静态触发碰撞器
Rigidbody 
Trigger Collider
刚体触发碰撞器
Kinematic Rigidbody 
Trigger Collider
运动学刚体触发碰撞器
Static Collider 静态碰撞器   Y        
Rigidbody Collider 刚体碰撞器 Y Y Y      
Kinematic Rigidbody Collider 
运动学刚体碰撞器
  Y        
Static Trigger Collider
静态触发碰撞器
           
Rigidbody Trigger Collider
刚体触发碰撞器
           
Kinematic Rigidbody Trigger Collider
运动学刚体触发碰撞器
           
Trigger messages are sent upon collision
碰撞后有触发信息
  Static Collider
静态碰撞器
Rigidbody Collider
刚体碰撞器
Kinematic 
Rigidbody Collider
运动学刚体碰撞器
Static 
Trigger Collider
静态触发碰撞器
Rigidbody 
Trigger Collider
刚体触发碰撞器
Kinematic Rigidbody 
Trigger Collider
运动学刚体触发碰撞器
Static Collider 静态碰撞器         Y Y
Rigidbody Collider 刚体碰撞器       Y Y Y
Kinematic Rigidbody Collider
运动学刚体碰撞器
      Y Y Y
Static Trigger Collider 静态触发碰撞器   Y Y   Y Y
Rigidbody Trigger Collider
刚体触发碰撞器
Y Y Y Y Y Y
Kinematic Rigidbody Trigger Collider
运动学刚体触发碰撞器
Y Y Y Y Y Y

触发信息检测:
1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器
2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器

时间: 2024-10-08 10:29:11

Unity3D 碰撞关系表 (转)的相关文章

重大发现Discuz DB层跨库映射关系表名前缀BUG

场景: 在Discuz中创建Table模型,但该Table所在库与Discuz不在同一个库. Discuz好像是在3之后提供跨库映射的机制. 映射没问题,主要是发现表名前缀没有相应的映射过来.当然,其实也不算bug.因为他只考虑discuz自己的系统,一般来说,表名前缀是相同的. 在db驱动类里,db_driver_mysql(i): function table_name中 if(!empty($this->config[$id]['tablepre'])){ $this->tablepre

SQL学习之使用命令方式创建、删除与修改关系表

首先,先介绍用命令方式创建.删除和修改关系表, (1).创建表 基本格式:create table 表名 ( 列名 数据类型 列级完整性约束,列名 数据类型 列级完整性约束(如果有多个列,注意要用       英文式的逗号隔开)       ,表级完整性约束(表级完整性约束和列级完整性约束之间也要用逗号分隔开) ) 列级完整性约束有: not null 限制列取值为空 default 指定列的默认值 unique 定义列取值不能重复 check 定义列的取值范围(check是定义的多列之间的取值

界面方式创建、修改和删除关系表以及定义表的完整约束

就是用SSMS工具图形化地创建及维护关系表 1.创建表: 在SSMS中,图形化地创建表的步骤如下图所示, 第一步:打开SSMS,展开需要创建表的数据库,然后再在表的节点上鼠标右击在新弹出来的单中选择'新建表'命令,在窗口右边将出现表设计器窗格:效果如下图, 第二步:在表设计器窗格中定义表的结构,针对每一个字段进行设置,包括'列名'.'数据类型'.'允许为空' 第三步:保存表的定义:效果如下图(以下介绍两种保存的方法) 或者是 2.定义完整性约束: (1)主码约束: 首先,先选中要定义主码的列,然

Oracle ERP系统借贷关系表

成本核算会计信息归纳 按照事务处理的来源类型归纳. 一. 采购接收入库和退货: 1.接收:   借:材料采购 (订单价格) 贷:应计负债 (订单价格) 2.入库: 借:原材料 (标准成本) 贷:材料采购 (订单价格) 借或贷:材料成本差异_材料订单价格 3.退货至接收时产生与上面第2步相反的分录,退货至供货商时产生与上面第1步相反的分录. 二. 子库存转移:只有转出子库产生分录 借:原材料(自制半成品.库存商品) 贷:原材料(自制半成品.库存商品) 三. 杂项事务处理: 1.库存增加:借:原材料

mongodb与SQL相应关系表

1. select查询 mongodb使用find或者findOne来查询: find批量查询. findOne是查询一条记录. find有两个參数: 第一个查询条件, 第二个查询返回的字段. 以下是mongodb与sql查询的相应关系表: SQL SELECT Statements                          MongoDB find() Statements SELECT * FROM users db.users.find() SELECT id, user_id,

自定义ORMapping—关系表转换为实体或实体集合对象

概述 ORMapping,中文翻译过来就是,关系对象的映射,他的作用就是使我们编程时,不用过多的关注持久层,只需要关注对象,关注业务就可以了.ORMapping主要完成两个功能:自动生成SQL语句和DataTable To Objects. 特性和反射 特性是用来描述元数据的,元数据就是源代码编译好后的代码.反射是运行时,获得对象或类的所有信息,通过这些信息,我们可以创建类获得特性信息等等 关系表转换为实体或实体集合对象的实现方式 对于关系表转换为实体或实体集合对象的实现方法可以有多种,这里说一

Python与数据库[2] -> 关系对象映射/ORM -> 利用 sqlalchemy 实现关系表查询功能

利用 sqlalchemy 实现关系表查询功能 下面的例子将完成一个通过关系表进行查询的功能,示例中的数据表均在MySQL中建立,建立过程可以使用 SQL 命令或编写 Python 适配器完成. 示例中用到的表主要有3张,一张personInfo个人信息表,一张account_store账号信息表,以及一张person_account_rel的个人信息与账号关系表. 示例中将会通过已知的人物年龄和id通过个人信息表查出个人姓名(仅为参考示例,请忽略怪异的查找逻辑 :) ),随后根据关系表得到的人

Java学习总结(十六)——MySQL数据库(中)分组,嵌套,连接查询及外键与关系表设计

一.分组查询 1.语法:group by 分组字段1[,分组字段2,.........] [having 分组后的筛选条件]2.注意:分组字段应该与select后的查询字段一致,否则查询结果无意义3.分组查询经常会与聚合函数一起使用例:(1)先建一张商品表(以此表为例进行分组查询) (2)插入记录 (3)查询:#1.计算每一种商品单价的平均价格 查询结果:#2.计算日用品种类的平均价格 查询结果:二.连接查询1.等值连接语法:select 字段1,字段2,........ from 表A,表B,

如何用Django建关系表

在models.py文件中通过定义类来创建表 创建一对一关系表 员工信息表:id.姓名.年龄 工资表:id.员工id.薪资(员工id与员工信息表的id一一对应) class UserInfo(models.Model): name = models.CharField(max_length=32,null=True) age = models.IntegerField() class Private(models.Model): salary = models.CharField(max_len