【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种类型。

Box Collider 2D 盒型碰撞体

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

1 Edit Collider 编辑边框

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

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的平铺。

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

7 Offset 偏移调整

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

8 Size 边界调整

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

9 Edge Radius 棱角半径

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

Circle Collider 2D 圆形碰撞体

1 Edit Collider 编辑边框

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

6 Raidus 半径

改变碰撞体尺寸。

其余属性跟Box Collider 2D相同

Edge Collider 2D 边缘碰撞体

1 Edit Collider 编辑边框

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

7 Points 点信息

轮廓点的一些信息。

其余属性跟Box Collider 2D相同

Polygon Collider 2D 多边形碰撞体

1 Edit Collider 编辑边框

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

其余属性跟Box Collider 2D相同

Capsule Collider 2D 胶囊碰撞体

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

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

Composite Collider 2D 复合碰撞体

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

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

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 自定义碰撞体        

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

Custom Collider 2D - Unity 手册

Tilemap Collider 2D 瓦片地图碰撞体

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

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

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

  • 14
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用 Unity 的 Physics 2D 系统来设置2D碰撞,具步骤如下: 1. 在场景中选择需要添加碰撞的对象,右键选择“2D Object” -> “Sprite” 或者 “Collider” -> “Box Collider” 等选项来添加碰撞组件。 2. 在 Inspector 窗口中可以设置碰撞的大小、形状、是否触发等属性。 3. 在代码中可以使用 Physics2D.Raycast()、Physics2D.OverlapCircle() 等方法来检测碰撞之间的碰撞。 希望能对你有所帮助。 ### 回答2: 在Unity的3D场景中,如果我们想要在游戏中使用2D碰撞,我们可以通过以下步骤进行设置: 1. 首先,我们需要创建一个2D碰撞对象。可以在项目资源面板右键点击,选择"Create" -> "2D Object" -> "Sprite"来创建一个2D精灵对象。 2. 接下来,将该2D精灵对象添加到场景中。可以通过拖拽该对象到场景视图中,或者在层级视图中右键点击选择"Instantiate"来添加该对象。 3. 确保该2D精灵对象的碰撞组件已经正确配置。在层级视图中选择该对象,并在检查器视图中查看其组件。如果没有添加碰撞组件,可以点击"Add Component"按钮并选择"Physics 2D" -> "Box Collider 2D"或者其他合适的碰撞组件。 4. 调整碰撞的大小和位置以适应所需的碰撞区域。在检查器视图中找到碰撞组件,并在其中调整碰撞的大小和位置。可以通过直接输入数值或者在场景视图中拖拽碰撞的边缘来调整。 5. 如果需要,可以在碰撞组件中设置其他属性,如碰撞层、碰撞器的类型等。根据具需求来设置这些属性,以便实现所需的碰撞效果。 6. 最后,保存场景并运行游戏,确认2D碰撞是否按照期望进行工作。你可以在游戏运行时,通过观察游戏对象之间的碰撞行为来验证2D碰撞是否正确工作。 总结起来,要在Unity的3D场景中设置2D碰撞,我们需要创建一个2D精灵对象,在其上添加碰撞组件,并调整该碰撞的大小和位置。然后可以根据需求设置其他属性,并在游戏运行时确认碰撞是否按照预期工作。 ### 回答3: 在Unity中,我们可以将2D碰撞应用于3D场景中。要设置2D碰撞,我们首先需要在场景中创建一个空物,然后在Inspector面板中将该物的模式切换为2D。接下来,我们可以通过以下步骤设置2D碰撞: 1. 在空物上添加2D碰撞组件:在Inspector面板中,点击"Add Component"按钮,然后在搜索框中输入"Box Collider 2D"(如果需要使用其他类型的碰撞,可以选择相应的组件)。选择合适的碰撞组件后,它将被添加到空物上。 2. 调整碰撞大小和位置:在Inspector面板中,可以通过调整碰撞组件的大小和位置来定义碰撞的形状和位置。一般来说,碰撞应该与物的外观和边界相匹配,以确保正确的碰撞检测。 3. 配置碰撞属性:通过调整碰撞组件的属性,我们可以进一步定义碰撞的行为。例如,可以启用或禁用碰撞、定义碰撞的触发器和物理材质等。 4. 实现碰撞检测与响应:在场景中设置好2D碰撞后,可以通过编写脚本来实现碰撞检测和响应的逻辑。例如,可以在脚本中使用OnCollisionEnter2D函数来处理碰撞事件。 上述步骤帮助我们在Unity的3D场景中成功设置2D碰撞。这样,我们就可以实现2D碰撞的检测和响应,并在游戏中创建类似于2D碰撞效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九九345

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值