【unity】学习制作2D横板冒险游戏-1-

news/2025/1/8 13:41:36/文章来源:https://www.cnblogs.com/plusu/p/18658710

创建项目

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/865853.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水位自动监测摄像机

水位自动监测摄像机作为现代智能监控技术的重要应用,正在广泛应用于水利工程、防洪管理和环境监测等领域,显著提升了监测效率和数据准确性。水位自动监测摄像机利用高精度摄像头和先进的图像处理技术,能够实时监测水体的液位变化。其原理是通过安装在指定监测点的摄像头,连…

工厂安全生产检测系统 车间作业异常行为识别系统

工厂安全生产检测系统 车间作业异常行为识别系的核心是基于YOLOv5+Python深度学习算法,工厂安全生产检测系统 车间作业异常行为识别系统通过车间部署的摄像头能够更准确地分析判断工人是否按照规定的操作流程进行操作,是否存在违规行为,如未佩戴安全帽、未按规定使用工具等。…

工具 - Typora - Typora工具的下载和激活

Typora工具的下载和激活 整理不易 如果觉得对您有所帮助,请点赞收藏 谢谢!!! 文章转载自https://blog.csdn.net/sdkdlwk/article/details/143754472 一、下载Typora工具 Typora下载地址或者通过网盘下载: 通过网盘分享的文件:Typora 链接: https://pan.baidu.com/s/1NIxn…

2025-01-08:找到按位或最接近 K 的子数组。用go语言,给定一个数组 nums 和一个整数 k,你的目标是找到一个子数组,使得该子数组中所有元素进行按位或运算后的结果与 k 之间的绝对差值尽

2025-01-08:找到按位或最接近 K 的子数组。用go语言,给定一个数组 nums 和一个整数 k,你的目标是找到一个子数组,使得该子数组中所有元素进行按位或运算后的结果与 k 之间的绝对差值尽量小。 具体地,你需要确定一个子数组 nums[l..r],使得以下表达式的值最小化: |k - (n…

工程师必看~功耗表现最佳模组:Air780EPS!

今天一起来聊聊Air780EPS模组~ 一、Air780EPS核心信息描述 软件开发: Air780EPS软件上既支持传统的AT指令,也支持基于Lua脚本开发的嵌入操作系统LuatOS。 外设支持: Air780EPS硬件上支持丰富的外设管脚,比如USB、UART、SPI、I2C、PWM、GPIO等。 网络协议: 支持丰富的网络协…

一篇解决:TCP断链续连问题!

一、TCP断链续连示例 TCP(传输控制协议)主要用于确保数据在网络中可靠传输。当TCP连接因网络问题、设备故障等原因断开时,需要重新建立连接以继续数据传输。 本文将通过Air201具体示例解析,教你使用LuatOS脚本语言实现TCP断链续连。 1.1 本教程实现的功能定义: 1)断链: …

使用PPP拨号的方式——快速实现USB上网!

今天一起来看看,如何使用PPP拨号的方式快速实现USB上网。 一、Windows下PPP拨号 1.1 配置标准调制解调器 1)选择COM口 具体操作如下: 打开控制面板—>电话和调制解调器—>调制解调器—>添加—>选择标准33600bps调制解调器—>选择COM口。2)修改波特率 具体操…

BOS或客户端清理服务器设置历史记录

1、客户端服务器设置中“清除全部记录”2、反编译Kingdee.BOS.IDE.exe, 查找配置文件修改, C:\Users\HUAXIN\Documents\Kingdee\K3Cloud\LoginInfo.xml

R语言系列—R语言简介及安装

同学们,大家好,今天开始开设一个新系列,R语言系列,对生信分析中涉及到的R语言代码及R语言绘图进行详细讲解,感兴趣的同学可以重点关注一下。 什么是R语言?R语言是用于统计分析、绘图的语言和操作环境。R语言是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用…

146. LRU 缓存(中)

目录题目法一、Map法二、双向链表 题目法一、Map对于超出容量时,删除最久未使用的关键字:在进行put和get时,只要存在就先删再重新放入map,保证了最久未使用的关键字处于map的第一个/*** @param {number} capacity*/ var LRUCache = function(capacity) {this.capacity = ca…

Linux使用dmidecode来查看机器有几根内存插槽,哪个槽上有内存

直接输入dmidecode即可,输出有很多,好像是根据SM总线来查询的,包括能查询到BIOS的地址空间和其中的信息等等,内存信息只是其中的一部分。摘录如下: dmidecode -t memory从这段输出可以看出,第一个Physical Memory Array是总体的内存信息,从这里可以看到有四个内存插槽、…

告别混乱!电商新年团队协作工具助你轻松应战

新年期间电商团队面临着巨大的工作量,而看板软件凭借其任务的可视化与分配、进度的实时跟踪与更新、沟通与协作的强化、个性化与定制化的满足以及多平台支持与便捷的移动办公等功能,成为了团队高效协作与沟通的得力助手,确保了电商业务在新年期间的平稳运行。看板软件凭借其…