Unity3D-Collider(碰撞器)

要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。

  • 物体发生碰撞的必要条件:
      两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。

  • 在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。

碰撞器:一群组件,它包含了很多种类,比如:Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。

一、碰撞器组件

  • 盒碰撞器(Box Collider)
  • 椭圆碰撞器(Sphere Collider)
  • 胶囊碰撞器(Capsule Collider)
  • 车轮碰撞器(Wheel Collider):专用于车辆
  • 网格碰撞器(Mesh Collider)
  • 地形碰撞器(Terrain Collider)

所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。

note

盒碰撞器(Box Collider)

盒子碰撞器是一个立方体外形的基本碰撞体,该碰撞体可以调整为不同大小的长方体,可以做门,墙等

盒碰撞器(Box Collider)

椭圆碰撞器(Sphere Collider)

椭圆碰撞器是一个基本球形的基本碰撞体,球形碰撞体的三维大小可以均匀的调节,适用于落石,球形障碍物

椭圆碰撞器(Sphere Collider)

胶囊碰撞器(Capsule Collider)

胶囊碰撞器是由一个圆柱体和与其相连的两个半球体组成

胶囊碰撞器(Capsule Collider)

车轮碰撞器(Wheel Collider)

车轮碰撞器是一种针对地面车辆的特殊碰撞体,有内置的碰撞检测、车轮物理系统及有滑胎摩擦的参考体。

车轮碰撞器(Wheel Collider)

网格碰撞器(Mesh Collider)

网格碰撞器通过获取网格对象并在其基础上构建碰撞碰撞。更加精细,但是会使用更多系统资源。开启Convex参数的网格碰撞体才可以与其他网格碰撞体发生碰撞。

网格碰撞器(Mesh Collider)

通常两个网格碰撞体之间不会发生碰撞,但是它们都可以与基本碰撞体发生碰撞
如果要让它发生碰撞:开启Convex属性

note

地形碰撞器(Terrain Collider)

地形碰撞器是具有相同的形状的一个碰撞面地形它连接到对象

地形碰撞器(Terrain Collider)

二、碰撞检测

  • 在Unity3d中,主要有以下接口函数来处理这两种碰撞检测:

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

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

Layer-Based Collision Detection 基于层的碰撞检测
在Unity3以后版本,我们介绍了一种称为“基于层的碰撞检测”(Layer-Based Collision Detection)的东西,可以让你有选择地控制Unity对象和他们附加的特定层碰撞。
选择选定游戏对象的层.

选择选定游戏对象的层

Edit->Project Settings->Physics.,打开物理引用界面. 在碰撞矩阵中选择要与其他层相互作用的层,勾选即可.

物理引用界面

【Unity】物理碰撞实验

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。