Unity入门计划基本概念-2D碰撞体Collider 2D
Posted 九九345
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity入门计划基本概念-2D碰撞体Collider 2D相关的知识,希望对你有一定的参考价值。
目录
官方帮助手册
我用的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以实现自定义,具体看:
Tilemap Collider 2D 瓦片地图碰撞体
为同一个游戏对象上的Tilemap组件的每一个瓦片生成碰撞体,当创建一个Tilemap Collider 2D时,会自动创建一个Tilemap组件:
关于该组件的优化:unity2d Tilemap Collider优化 - 知乎 (zhihu.com)
以及该组件的介绍:瓦片地图 2D 碰撞体 (Tilemap Collider 2D) - Unity 手册
Unity入门计划基本概念-预制件 Prefab
目录
官方文档
相关教程
我的Unity版本
2021.3.6
1 预制件的作用
unity中我们通常需要给游戏对象添加一些比如刚体、碰撞体等组件实现一些效果。但当遇到同一个NPC、场景中的道具在场景中需要被重复使用时,如果只是一步一步重复添加组件,效率会非常低,这是我们就希望把同一种需要复制的对象打包起来,需要用的时候直接复制粘贴即可。
预制件就是unity提供给用户的一个实现上述操作的资源类型。
2 预制件的定义
- 预制件(prefab)是一种assert资源类型;
- 预制件用于存储游戏对象(GameObject)对象以及配套的组件和属性;
- 预制件充当一种模板功能,是一个可重复使用的资源模板;
3 预制件的优点
既然它是一个打包好的资源模板,那么优点就清晰可见了。它可以轻松的大范围的修改项目的内容,无需对每个单一对象进行重复编辑,节省了大量的时间。
4 一般使用的场景
- 环境资源——很多的山、树等,会预先做好再导成预制件
- 武器的炮弹——大炮发射的实例化炮弹预制件
- 玩家——玩家预制件会被放在各个关卡的起点位置
5 预制件的创建&使用
5.1 创建
- 在文件夹右键 -> Create -> Prefab,就可以创建一个预制件;
- 将场景中想要实现复制的对象拖到这个预制件资源 -> 弹出提示框没选择Replace -> 就创建了一个可重复使用的资源模板;
- 此时, 原本的对象前面的图标也改变了,从线框 -> 实心 ;属性面板也多了Prefab属性。
5.2 使用
使用就很简单了,要么直接拖入Scene视图,要么ctrl+D复制即可。
6 预制件的编辑
6.1 更改预制件本身
双击进入预制件,就会把关注集中在预制件本身,给他做修改、添加组件即可。同时预制件设置的操作,会在场景中所有由预制件生成的实例对象做更改。
6.2 更改实例对象
如果在预制件生成的实例对象做更改,修改后,需要在Inspector面板上方的Prefab栏 -> Overrides做操作
- Revert All——还原到预制件
- Apply All——修改预制件的值
还可以单独做更改,同时对应的Revert和All意思跟上面的一样。
6.3 实例属性优先于预制件
需要注意的点是,如果在预制件生成的实例对象里对某个值做了修改以后,这个值就会被覆盖掉,再在预制件中进行修改是不会改变当前实例对象的值的。
这个很好理解,预制件相当于所有子对象的父类,生成的实例子对象是子类,父类的操作总是在子类之前的,因此子类就具有修改所谓的优先性,属性的修改也优先于预制件。
7 预制件变体 Prefab Variant
直接引用UP教程举例的关系图:
预制件变体是由原来预制件创建出来的新的预制件,在保留了原来预制件的基础上,还添加了新的特性,这些预制件变体还可以变出自己的变体,再由这些变体生成对应的不同的对象。
7.1 预制件特点
- 预制件变体继承基础预制件的属性
- 预制件变体的属性覆盖优先于基础预制件
7.2 预制件的创建
- Project面板 -> 右键想要当作基础预制件的Prefab -> Create -> Prefab Variant
- 直接拖入想要当作预制件变体的对象,会有提醒是否创建预制件变体
8 预制件unpack成对象
如果不想让预制件继续充当预制件了,在hierarchy窗口右键,Prefab -> unpack,就能解包成一个单纯的游戏对象了。
以上是关于Unity入门计划基本概念-2D碰撞体Collider 2D的主要内容,如果未能解决你的问题,请参考以下文章