【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D

目录

官方帮助手册

我用的Unity版本

2D碰撞体的作用

2D碰撞体的类型

Box Collider 2D 盒型碰撞体

1 Edit Collider 编辑边框

2 Material 材质

3 Is Trigger 触发器开关

4  Used By Effector 效应器开关

5 Used By Composite 混合开关

6 Auto Tiling 自动适应瓦片平铺

7 Offset 偏移调整

8 Size 边界调整

9 Edge Radius 棱角半径

Circle Collider 2D 圆形碰撞体

1 Edit Collider 编辑边框

6 Raidus 半径

其余属性跟Box Collider 2D相同

Edge Collider 2D 边缘碰撞体

1 Edit Collider 编辑边框

7 Points 点信息

其余属性跟Box Collider 2D相同

Polygon Collider 2D 多边形碰撞体

1 Edit Collider 编辑边框

其余属性跟Box Collider 2D相同

Capsule Collider 2D 胶囊碰撞体

Composite Collider 2D 复合碰撞体

5 Geometry Type 几何类型

6 Generation Type 发生变化时的几何形状

7 Vertex Distance 顶点距离限值

8 Offset Distance 偏移距离限值

其余属性跟Box Collider 2D相同

Custom Collider 2D 自定义碰撞体        

Tilemap Collider 2D 瓦片地图碰撞体


官方帮助手册

2D 碰撞体 - Unity 手册

我用的Unity版本

2021.3 

2D碰撞体的作用

  • 2D碰撞体对应的是2D的游戏对象,不能将3D和2D混用;
  • 这个组件可以定义物理碰撞的2D游戏对象的形状;
  • 形状不需要与游戏对象完全相同,粗略近似的方法在游戏运行中更有效。

2D碰撞体的类型

通过搜索可以看到,1D碰撞体都有以下8种类型。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第1张图片

Box Collider 2D 盒型碰撞体

它就是一个矩形的碰撞盒。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第2张图片

1 Edit Collider 编辑边框

可以在Scene视图中调整碰撞体的边框,边框是个矩形box。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第3张图片

2 Material 材质

关联材质,默认是一个2D物理材质Physics Material 2D,用来调整2D物理对象碰撞时这些对象之间的摩擦弹性。

Assets -> create -> 2D -> Physics Material 2D就可以新建一个Physics Material 2D,默认的摩擦系数Friction -> 0.4,弹性Bounciness -> 0.

3 Is Trigger 触发器开关

选中后,这个2D碰撞体会作为触发器运行,那么什么叫触发器?可以看看我的另一篇文章:Unity学习-触发器 Trigger_flashinggg的博客

4  Used By Effector 效应器开关

如果该碰撞体使用Effectors 2D——2D效应器,需要勾选这个选项使碰撞效应生效。可以发现这里提到的2D效应器组件是需要和2D碰撞体结合使用的,关于效应器可以先看看这篇文章:【Unity】Unity 2D游戏开发(二)Effectors 2D碰撞效应器

5 Used By Composite 混合开关

如果该碰撞体使用Composite Collider 2D——2D复合碰撞体,勾选这个选项之后碰撞体的其他属性会被忽略,把复合碰撞体的属性作为该碰撞体的属性。

2D 复合碰撞体 (Composite Collider 2D) - Unity 手册

6 Auto Tiling 自动适应瓦片平铺

精灵渲染器(Sprite Renderer)的Draw Mode设置为Tiled时,勾选Auto Tiling可以自动适应Sprite的平铺。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第4张图片

关于精灵渲染器可以先看看官方的文档,精灵渲染器 (Sprite Renderer) - Unity 手册,后续我会在进行学习。

7 Offset 偏移调整

和Size一起,用于调整碰撞体的位置。

8 Size 边界调整

和Offset一起,用于调整碰撞体的位置。

9 Edge Radius 棱角半径

控制边缘周围的半径,是顶点为圆形。(目前不太清楚这个参数对于Box Collider的影响)

Circle Collider 2D 圆形碰撞体

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第5张图片

1 Edit Collider 编辑边框

可以在Scene视图中调整碰撞体的边框,边框是个圆形。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第6张图片

6 Raidus 半径

改变碰撞体尺寸。

其余属性跟Box Collider 2D相同

Edge Collider 2D 边缘碰撞体

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第7张图片

1 Edit Collider 编辑边框

可以在Scene视图中调整碰撞体的边框,自己框出轮廓,这个轮廓无需完全包围一个区域,可以是直线也可以是L形。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第8张图片

7 Points 点信息

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第9张图片

轮廓点的一些信息。

其余属性跟Box Collider 2D相同

Polygon Collider 2D 多边形碰撞体

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第10张图片

1 Edit Collider 编辑边框

可以在Scene视图中调整碰撞体的边框,边框初始是自动根据轮廓贴合的,可以自己修改。与Edge Collider不同的是,这个多边形碰撞体的边缘必须完全包围一个区域。

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第11张图片

其余属性跟Box Collider 2D相同

Capsule Collider 2D 胶囊碰撞体

胶囊碰撞体是由两个半球体与一个圆柱体相连构成的,就跟胶囊的样子差不多,适用于柱状物。

胶囊碰撞体(CapsuleCollider) - Sun‘刺眼的博客 - 博客园 (cnblogs.com)

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第12张图片

Composite Collider 2D 复合碰撞体

2D 复合碰撞体 (Composite Collider 2D) - Unity 手册

这个碰撞体没有固定的形状,在上述的盒型碰撞体Box Collider和多边形碰撞体Poly Collider都有一个属性——Used By Composite,选这个选项后,2D复合碰撞体将合并他们的形状。 

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第13张图片

5 Geometry Type 几何类型

合并后,所选碰撞体的顶点组合成两种不同的几何类型:

  • Outlines——空心轮廓,类似Edge Collider 2D
  • Polygons——实行多边形,类似Polygon Collider 2D

6 Generation Type 发生变化时的几何形状

(这部分不是很明白可以用来干什么,先记录下来吧。)

  • Synchronous——立即自动生成新的集合体
  • Manual——手动

7 Vertex Distance 顶点距离限值

设置一个值,用以规范从碰撞器中收集的任何顶点所允许的最小间距,可以用来控制定点组合的有效分辨率。

8 Offset Distance 偏移距离限值

类似于Vertex Distance

其余属性跟Box Collider 2D相同

Custom Collider 2D 自定义碰撞体        

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第14张图片

需要用到PhysicalShape2D以实现自定义,具体看:

Custom Collider 2D - Unity 手册

Tilemap Collider 2D 瓦片地图碰撞体

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第15张图片

为同一个游戏对象上的Tilemap组件的每一个瓦片生成碰撞体,当创建一个Tilemap Collider 2D时,会自动创建一个Tilemap组件:

【Unity入门计划】基本概念(3)-2D碰撞体Collider 2D_第16张图片

关于该组件的优化:unity2d Tilemap Collider优化 - 知乎 (zhihu.com)

以及该组件的介绍:瓦片地图 2D 碰撞体 (Tilemap Collider 2D) - Unity 手册

你可能感兴趣的:(Unity学习,unity,学习,游戏引擎)