Bootstrap

【unity组件详细介绍】【二:Collider和Rigidbody(碰撞和刚体)】(下)(图 + 文)

大家好,我是阿浪,新入CSDN的博主,我会在接下来的时间里,分享我对基于unity引擎开发的认知与经验,如果你是从业游戏开发行业,觉得我的文章对您有帮助,麻烦您为我的文章点一个赞,再去收藏以便学习。你的点赞将会成为我继续创作下去的动力,感谢支持!

一、多种样式的collider

无论是2d还是3d,都有多种collider组件,他们最大的区别就在于碰撞体的形状不同,我们在Add Component中搜索collider可以看到:

其中有2d有3d,我们可以根据自己游戏对象的形态来设置collider的形状,或叠加collider;

接下来我会为你介绍几种常见的2d和3d碰撞体组件形态,运用场景及其属性。

二、3D常用碰撞体组件介绍

        1.Box Collider

首先是Edit Collider,绝大多数碰撞体都有的一个属性,他可以帮助开发者更好的修改碰撞体的大小形态,如上图Sence中绿色部分,就是该游戏对象的一个碰撞检测范围,我对其进行了拉长。

常用属性:

1.Center:设置碰撞体的中心位置,相对于物体的原点。可以通过 Vector3 调整 X、Y、Z 坐标。

2.Size:设置碰撞体的大小,定义碰撞体的宽度、高度和深度。也是一个 Vector3 类型。

3. Is Trigger:布尔值,决定碰撞体是否作为触发器工作。如果为 true,碰撞体不会产生物理碰撞,而是触发 OnTriggerEnter、OnTriggerStay 和 OnTriggerExit 事件。

4.Material:设置碰撞体的物理材质,影响碰撞时的摩擦和弹性。

5.Layer Override:通过设置不同的层级,可以实现更复杂的碰撞逻辑,例如让某些物体只与特定层的物体发生碰撞。

6.Provides Contacts:这是一个布尔属性,指示碰撞体是否提供接触点信息。启用此选项后,碰撞体在发生碰撞时会生成接触点数据,这些数据可以在碰撞事件中使用。

        2.Sphere Colllider

球形碰撞体,属性与Box Collider重复,不再介绍

        3.Capsule Collider

胶囊提形状碰撞体,如图:

其中Direction组件熟悉为方向轴,可以选择XYZ三个方向,其他属性重复。

        4.Mesh Collider

网格碰撞器,该碰撞器非常消耗性能,能少用经量少用。

属性:

1.Mesh:指定用于碰撞的网格。可以是一个自定义的网格,通常是通过 3D 建模软件创建的。

2.Convex:布尔值,指示碰撞体是否为凸形。如果设置为 true,Mesh Collider 将被视为凸形,适用于动态物体。凸形碰撞体可以与 Rigidbody 一起使用。

3.Cooking option:主要用于控制网格碰撞体的构建方式。

其他重复不再多说。

                注意事项:

1.使用 Mesh Collider 时,尽量使用较低多边形数的网格,以提高性能。

2.非凸形的 Mesh Collider 不能与 Rigidbody 一起使用,必须将其设置为静态物体。

        5.Terrain Collider

生成Terrain是自动生成的一种碰撞体,属性重复,不再多说

三、2D常用碰撞体组件介绍

        如下图,这些是unity提供的2d组件

        1.Box Collider 2D

正方形碰撞体

以下是非重复属性:

1.Offset:设置碰撞体的偏移位置,相对于物体的原点。可以通过 Vector2 调整 X 和 Y 坐标。

2.Used By Effector:布尔值,指示该碰撞体是否被物理效应器使用,通常用于与 2D 物理效应器结合。

适用于需要简单矩形碰撞的 2D 游戏物体,如平台、墙壁和角色。

        2.Circle Collider 2D

圆形碰撞体

        3.Capsule Collider 2D

椭圆形碰撞体

        4.Custom Collider 2D

开发者可以根据需要定义碰撞体的形状,通常通过编程或使用自定义网格。

        5.Polygan Collider 2D

这种也是可以自定义碰撞体形状的,不过棱角分明。

        6.Edge Collider 2D

后面新出了一个TileMap的碰撞体组件,感兴趣的朋友可以自己去看看API。

下一期我会介绍碰撞体组件的六个回调函数。

;