[Unity2D]Box Collider 2D盒子碰撞器
盒子碰撞器(BoxCollider2D)是Unity2D中常用的碰撞器,所有为碰撞器,顾名思义,就是用于检测物体之间的碰撞情况的,Unity2D里面除了BoxCollider2D碰撞器之外还集成Box2D物理引擎和一系列2D物理组件,分别如下:
1 Rigid-body组件(RigidBody2D)支持static/kinematic/dynamic 刚体, 质量, 线性/角 速度, 拖动和自动休眠,和固定角度限制。
2 圆形碰撞器(CircleCollider2D)支持圆心和半径
3 盒子碰撞器(BoxCollider2D)支持中心和大小
4 多边形碰撞器(PolygonCollider2D)支持任意多边形。它能通过拖动sprite到组件上来初始化为组件形状
5 距离关节(DistanceJoint2D)支持在两个刚体间存在一个硬连接(本人理解是用一个硬的物体(例如小棒)连接两个刚体)
6 铰链关节(HingeJoint2D)支持线性和有角度的限制以及马达驱动
7 滑动关节(SliderJoint2D)支持轴限制,线性限制和马达驱动
8 弹簧关节(SpringJoint2D)支持在刚体间使用一个软弹簧
在做一些物理的碰撞的时候可以根据游戏的实际情况来选择合适的碰撞器,下面以 盒子碰撞器(BoxCollider2D)为例说明一下:
碰撞器也是属于游戏对象的一个组件,可以通过添加组件的方式来添加盒子碰撞器,如下图所示:

添加之后如下所示:

Size和Center很好理解就是用于确定盒子的大小和位子,那个主要看看这个Is Trigger属性,这个属性默认是不打勾的,它表示是否启用触发器。是否启用触发器主要是跟脚本有关系的,启动触发器之后碰撞检测会触发脚本的相关方法。如:
void OnTriggerEnter2D(Collider2D collidedObject)
void OnTriggerExit2D(Collider2D collidedObject)
当发生碰撞反应的时候,会先检查此属性。
当激活此选项时,会调用碰撞双方的脚本 OnTrigger***, 反之,脚本方面没有任何反应。
当激活此选项时,不会发生后续物理的反应。反之,发生后续的物理反应。
总结:Is Trigger 好比是一个物理功能的开关, 是要“物理功能”还是要“OnTrigger脚本”。
所以如果你需要用脚本来处理一些碰撞发生的一些事情,那就就需要添加脚本来实现着两个方法。添加脚本如下图所示:

OnTriggerEnter与OnCollisionEnter的区别
OnTriggerEnter:一个有Rigidbody,另一个有Trigger 的Collider
| 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 |
| 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 |
[Unity2D]Box Collider 2D盒子碰撞器的更多相关文章
- 2D多边形碰撞器优化器
http://www.unity蛮牛.com/thread-19827-1-1.html http://pan.baidu.com/s/1qW2mWS8 Asset Store Link: http: ...
- Unity3D --对撞机/碰撞器 介绍
碰撞器一般都用作触发器而用,刚体一般用作真实碰撞. 静态对撞机:一个对象有对撞机组件,没有刚体组件. 这种情况在场景中的静态物体应用较多,比如墙体,房屋等静止不动的物体. 物理引擎假设静态对撞机是不会 ...
- 碰撞器与触发器[Unity]
请看原帖,移步:Unity3d碰撞检测中碰撞器与触发器的区别 要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加 ...
- 关于Unity中的刚体和碰撞器的相关用法(一)
1.创建一个3D工程 2.构造项目文件目录 3.保存场景为game_scene到文件夹scenes中 4.创建一个Plane平面类型的GameObject节点和一个Sphere球体类型的GameObj ...
- Unity 碰撞检测中碰撞器与触发器的区别
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...
- Unity3d碰撞检测中碰撞器与触发器的区别
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...
- Unity 碰撞器和触发器的理解
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...
- Unity3d — — UGUI之Box Collider自适应大小
NGUI下给Sprite/image添加collider后能自适应大小,但是在UGUI下Collider是默认在(0,0)位置,size为0 因此写了个简单的脚本,效果如下(最后附代码) 1.如下图添 ...
- Unity -- Collider(碰撞器与触发器)
(2d与3d的Collider可以相互存在,但是无法相互协作,如2d是无法检测3d的,反之,一样) 在目前掌握的情况分析,在Unity中参与碰撞的物体分2大块:1.发起碰撞的物体.2.接收碰撞的物体. ...
随机推荐
- Nmap备忘单:从探索到漏洞利用(Part 5)
这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...
- angular 监听ng-repeat结束时间
有些时候我们想要监听angular js中的 ng-repeat结束事件,从而好初始化一些我们的第三方或者其他需要初始化的js. 我们可以这样处理: js 中这样定义 : //监听事件 是否加载完毕a ...
- 基于网页内容数据采集 PHP开发学习笔记
jQuery数字的截取: str.toFixed(num);//小数的截取 toFixed() <script type="text/javascript"> var ...
- 【Python】django多对多 查询 ,反查等操作
The Django Book中这样写 但我使用属性名后加_set会报错 而直接用members = group.user_group_join.all() 就可以 可能因为我的MyUser类里有两个 ...
- js 基本介绍
ecma 对象 三个包类型 String ParseInt ParseDouble instanceof typeof Math 对象 Array Date RegExp -- bom对象 ...
- 【转】基于注解的SpirngMVC简单介绍
转载地址:http://haohaoxuexi.iteye.com/blog/1343761 SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 Di ...
- kettle job通过javascript进行循环控制
任何一种编程语言都少不了循环,kettle中的job也一样.那么kettle中的job是怎么通过JavaScript来达到类似于编程语言中的for循环呢? var max = parent_job.g ...
- codeforces A. Flipping Game 解题报告
题目链接:http://codeforces.com/problemset/problem/327/A 题意是输入一个只有0和1的序列,要求找出一个合理的区间,在这个区间里面把0变成1,1变成0,使得 ...
- POJ 3904 Sky Code (容斥原理)
B - Sky Code Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- mysql_1
1.mysql> select NOW();等效于select user()\g+---------------------+| NOW() |+---------- ...