美文网首页
Unity3D-Collider(碰撞器)

Unity3D-Collider(碰撞器)

作者: NightChord | 来源:发表于2016-12-09 11:33 被阅读0次

    要产生碰撞必须为游戏对象添加刚体(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】物理碰撞实验

    相关文章

      网友评论

          本文标题:Unity3D-Collider(碰撞器)

          本文链接:https://www.haomeiwen.com/subject/ovmsmttx.html