[Unity2D]Box Collider 2D盒子碰撞器

本文介绍了Unity2D中的Box Collider 2D,作为2D游戏开发中的常用碰撞器之一,其功能包括中心和大小设置。讨论了如何与其他2D物理组件如Rigidbody2D、CircleCollider2D等进行比较,并详细解析了Is Trigger属性的重要作用,该属性决定了是否激活脚本的OnTrigger*方法。文章通过实例指导如何添加和配置Box Collider 2D,并提到了OnTriggerEnter与OnCollisionEnter的区别。
摘要由CSDN通过智能技术生成

    盒子碰撞器(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

OnCollisionEnter:一个有Rigidbody(非Kinematic),另一个有非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 刚体碰撞器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值