Unity 碰撞体和刚体的区别(应用)

很多初学者都会问这么一个问题,那就是碰撞体和刚体到底有什么区别,以及如何应用


两句话概括碰撞体:
碰撞体才能被射线检测到,否则无法被检测
碰撞体是产生碰撞的前提


两句话概括刚体:
需要模拟重力的自由下落时,添加刚体
物体间发生碰撞时,主动体身上必须添加刚体


不管是哪一种Collider,都有 IsTrigger属性,注意,在发生碰撞的两个物体中,不管是一个物体勾选IsTrigger属性,还是两个物体同时勾选这个属性,效果都是一样,勾选上,碰撞时会互不影响的相互穿插过去,如不勾选,在碰撞时,碰撞体之间谁也不让谁,相互僵持


落实到实际开发中就分如下两种情况:


主动体(碰撞体+刚体) +被动体(碰撞体)+勾选IsTrigger属性+OnTriggerEnter

因为勾选IsTigger属性,所以发生碰撞时,碰撞体之间可以互不影响的相互穿插过去,但是碰撞那一刻,OnTiggerEnter函数会被触发,Collider参数代表的是没有挂脚本的那个对象


主动体(碰撞体+刚体)+被动体(碰撞体)+OnCollisionEnter

因为没有勾选IsTigger属性,所以发生碰撞时,碰撞体之间不能够相互穿插,碰撞的那一瞬间,OnCollisionEnter函数会被触发,Collision参数代表的是没有挂脚本的那个对象


下面就做一个简单的demo


在场景中建两个对象,一个正方体,一个球体 ,两个对象都是碰撞体
然后在正方体上添加一个刚体,并且把刚体的重力去掉


这里写图片描述


这里写图片描述


这里写图片描述


此时运行场景,在Scene窗口中,拖动正方体,主动碰撞球体,结果如下:
这里写图片描述


我只测试上面这一种情况,你也可以继续做如下测试:
测试一:将上面的主动体中的刚体去掉,添加到被动体上,看看结果
测试二:将上面脚本中OnCollisionEnter换成OnTriggerEnter,看看结果
测试三:将上面脚本中碰撞体属性IsTrigger勾选任意一个,看看结果
测试四: 测试二+测试三 结合起来,看看结果


FR:徐海涛(Hunk Xu) QQ技术群:386476712

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值