简明教程 Unity碰撞基础

Unity碰撞函数不触发,是新手易犯的问题
具体参考,官方文档中的表格 http://docs.unity3d.com/Manual/CollidersOverview.html

Collision detection occurs and messages are sent upon collision
Static ColliderRigidbody ColliderKinematic Rigidbody ColliderStatic Trigger ColliderRigidbody Trigger ColliderKinematic Rigidbody Trigger Collider
Static Collider Y
Rigidbody ColliderYYY
Kinematic Rigidbody Collider Y
Static Trigger Collider
Rigidbody Trigger Collider
Kinematic Rigidbody Trigger Collider


Trigger messages are sent upon collision
Static ColliderRigidbody ColliderKinematic Rigidbody ColliderStatic Trigger ColliderRigidbody Trigger ColliderKinematic Rigidbody Trigger Collider
Static Collider YY
Rigidbody Collider YYY
Kinematic Rigidbody Collider YYY
Static Trigger Collider YY YY
Rigidbody Trigger ColliderYYYYYY
Kinematic Rigidbody Trigger ColliderYYYYYY

表格看起来情况比较多,好像比较复杂。

简明公式

拿人和地面碰撞举例子:

  1. 碰撞回调函数,如OnCollisionEnter,OnCollisionExit,OnCollisionStay,触发条件如下:

    两个物体,人和地面,Collider都加,Rigidbody至少加一个,Kinematic不能都勾,Trigger都不能勾

  2. 触发器回调函数,如OnTriggerEnter,OnTriggerExit,OnTriggerStay,触发条件如下:

    两个物体,人和地面,Collider都加,Rigidbody至少加一个,Kinematic怎么勾都行,不影响,Trigger至少加一个

  3. Rigidbody选择:

    Rigidbody一般加在动的会受力的物体上,比如人,地面不会动,一般不加

大功告成!

按照公式配置, 是不是很好记呢?以后碰撞相关的就不会混乱了,推荐动手做,加深记忆。若要对其原理进行学习,可以继续阅读。本文为个人理解和配置习惯,非官方,若有建议欢迎交流。

写于2016/09,饼哥欢迎一切相关交流与提问~

属性解释

Collider

定义:组件,碰撞体形状,是触发碰撞的根基。
使用:要触发函数,双方都要加上。

Rigidbody

定义:组件,刚体,赋予物体物理属性,使其能受力,并根据受力自己动起来。
使用:一般只加给动的物体,比如例子中的人。

IsTrigger

定义:Collider的属性,表示是否为触发器Trigger。
使用:默认不勾,表示不是Trigger,为正常碰撞体实心不可穿透;勾上表示是Trigger,为空心可穿透。触发对应函数。
注意:上述的穿透与否,是针对一方加了Rigidbody Collider而言,不加的叫Static Collider,双方都是Static的话,就算双方Collider重合,不会触发任何函数,也不会弹开,因为双方都不会受力,不受力自然就不会动了。

IsKinematic

定义:Rigidbody的属性,表示是否为Kinematic运动学的。
使用:默认不勾,表示正常刚体,可受力;勾上,不受力,行为类似Static,一般用于脚本控制移动的物体。

Q&A

Q: 版本
A: 不影响,使用的Unity5之后

Q: 参考
A: http://docs.unity3d.com/Manual/CollidersOverview.html
与编辑器中亲自尝试

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值