创建项目
2D(Built-In Render Pipeline)核心模板
为2D游戏开发提供基础架构。
配置了适合2D项目的纹理导入、Sprite Packer、Scene视图、光照和正交摄像机等设置。
3D(Built-In Render Pipeline)核心模板
开启3D游戏开发之旅,提供强大的3D场景构建能力。
配置了使用Unity内置渲染管线的3D应用程序的项目设置。
Universal 核心模板
具有通用性,适用于多种项目的3D开发。
使用了Universal Render Pipeline(URP),这是一种预先构建的可快速轻松自定义的可编程渲染管线。
Mobile核心模板
为移动设备上的游戏开发提供便利。
优化了移动设备的性能和兼容性。
下载素材
人物 https://brullov.itch.io/generic-char-asset
场景 https://anokolisa.itch.io/sidescroller-pixelart-sprites-asset-pack-forest-16x16
导入素材
一些设置
勾选后创建一个新的物体,默认为0.0.0
不勾选默认在当前视角中心位置
图片部分
Pixels Per Unit 图片每单元格数量,在美术绘制中,一般会以1616或3232等像素绘制图案,调整为相应数字即可
Filter Mode决定了当纹理由于变换(如缩放、旋转)而产生拉伸或压缩时,会采用哪种滤波方法来计算最终的颜色值。它影响纹理在放大和缩小时的图像质量,确保采样更加合理。
双线性插值(Bilinear Interpolation):
每个像素读取距其最近的4个纹素,在二维空间进行线性插值,得到该像素的值。
三线性插值(Trilinear Interpolation):
结合了双线性插值和Mipmap技术。
在三维空间(考虑纹理的Mipmap层级)进行插值,得到最终的颜色值。
切割图片
切割方式-自动
切割方式-按单元格Grid By Cell Count
我们需要先查需要几行列的单元格(图示11*8)
中心点,以脚底为中心点
绘制场景
不规则单元格多图片切割
更改x,y保证单元格能完整切割图片
打开瓦片调色盘
创建一个新的瓦片,
在文件Tilemap-Palettes下
将分割好的图片添加进瓦片中(鼠标拖入)(在文件Tilemap-Tile文件下
创建瓦片地图
选择瓦片进行绘制,这是单元格不对应
修改中心点
总结:人物中心点一般选择底部,背景中心点一般选择中心
此时单元格对应了
绘制一个平台
熟悉TilePalette工具
设置中还有其他工具可以添加
添加人物
图层的概念
在背景中,我们还有一层草地没有添加
如果直接添加,会导致草地在人物的前方
这是因为,不论是地图还是人物都默认在Default层的第0层中,数字越大越在上方
可以添加层,这些层的遮盖逻辑为从上到下依次被遮盖
完善地图层
有了层的概念,我们在绘制地图时,为了地图的美观就要设计地图的层次
添加层
给地图应用层
根据名字调整order in layer
调整完成后,显示顺序为,从后至前依次为
back1 back2 back3 platform front1 front2 front3
返回到Tile Palette 中就可以选择任意层进行绘制了
TileMap focus 可以着重显示我们所绘制的具体图层
选择back 3绘制草地,此时人物就会在草地的前面了
瓦片规则 Tiling rule
在绘制地图时,我们靠手动绘制地图工程量会很大且重复,这时我们可以用Tiling rule 创建一个瓦片规则用来快速生成我们所需要的地图
创建Ruler Tiles 文件夹,在文件夹中创建Tiling rule 命名为Ground1
在图示位置添加规则
如图所示,所选图片为地面右上角的图片
因此他只有↓↘→方向上有图片,因此设置规则如图所示
地面其余三个角同理
边上的则随机更好(三张图随机生成
如图所示设置
其余同理
中间填充同理
在瓦片调色器使用做的瓦片规则
生成有bug,当出现所示拐角时,会出现不协调的问题
斜角的判定全部取消,猜测是斜角判定太多导致判定不出结果生成默认图片
在所示拐角生成也不协调
添加规则
完成现在随便一画就是一个地图,不用一块一块拼接了
动态瓦片
在地图中除了地面这些静态的瓦片,还应该有静态的如水流之类的瓦片
选择图层,瀑布应在地面的后方,因此选择back
创建文件夹,创建动态瓦片
动态瓦片设置如下
这只是瀑布的左边一条,其余两条同理
基础组件
为人物添加刚体2D和碰撞体,并锁定z轴
为地图瓦片添加瓦片碰撞体,这时地图的碰撞体是一块一块单独的小块
添加Compositite collider ,并勾选选项,这时地图合并成了一块碰撞体
我们不希望场景也会随着重力掉落,因此设置刚体2D
刚体组件
Collision Detection
Mass
interpolate