【学习笔记】自学Unity Day03 - 绘制游戏地图

前言:主要想记录下自己自学的过程、期间遇见的问题、不同版本需要调整的地方,方便以后复习能及时找到对应的部分;同时也希望给想要入门游戏开发、学习unity的各位一些经验,减少一些弯路

之前的文章

【学习笔记】自学Unity Day01-CSDN博客

【学习笔记】自学Unity Day02-CSDN博客

上一篇文章已经能够让我们能够通过键盘的输入控制 ruby 的移动,这次我们要制作世界地图

世界地图

我们开发的是2D游戏,这次要制作的是瓦片地图,关于瓦片地图的详细信息可以在用户手册上查看:Unity - Manual: Tilemaps

要制作瓦片地图,首先我们得有地图对应的游戏对象,可以从官方文档上下载,链接我已经复制过来了,直接点击下载即可

https://connect-prd-cdn.unity.com/20190206/learn/images/9d150874-0668-448e-8eec-fc8d888adc1d_image11.png

创建地图

打开 unity,在 hierarchy 窗口中右键选择 2D object - tilemap - rectangle;unity 会自动创建两个游戏对象 grid 和 tilemap

瓦片地图需要使用瓦片

创建新瓦片

在 project 窗口中 assets - art 目录下创建新文件夹 Tiles,用来存放瓦片相关的资源,在 Tiles 中创建新瓦片 create - 2d - Tiles - rule tile

这里我们将其命名为 FirstTile,和官方文档一致

在 inspector 窗口中可以看到瓦片的信息

将之前下载的瓦片图片放到 assets - art - sprits 文件夹中,和 ruby 的操作方式类似

在 project 窗口中选中之前创建的 FirstTile,在 Inspector 窗口中点击 select,选中刚刚生成的 tile sprite

创建瓦片面板

选择 window - 2d - tile palette,打开瓦片地图的绘制面板,将上面创建的 FirstTile 拖放到其中,最上方的部分就是工具栏。

没有面板的点击工具栏左下方的 create new palette 创建新面板即可

工具栏说明

3. 画笔,在 scene 中绘制瓦片

6. 橡皮擦,清除 scene 中的瓦片

目前了解这两个就足够使用了,其他工具可以自行探索

绘制地图

选中画笔工具(工具栏第三个),在 scene 视图中绘制地图

你可能会发现地图之间存在空隙,这是因为瓦片精灵的大小还没设置;

在 project 窗口中,选中我们之前导入的 sprite 下的 tile 精灵,查看 Inspector 面板

在下放方可以看到 tile 的大小为 64*64,而 pixels per unit 属性是 100(表示 100像素/单位);将其改为 64之后就可以消除瓦片之间的空隙了

瓦片集

顾名思义,就是瓦片的集合;一个世界的构成往往需要多个不同的瓦片,如果都用单个瓦片导入的方式,效率低下

瓦片集就是将多个瓦片合并成一个图片,一次导入然后分割成多个瓦片精灵,降低工作量,提高效率

调整瓦片集

选择 project 窗口,在 art -sprites - environment 目录下以 Floor 开头的就是瓦片集;现在我们需要修改它们,将其拆分

首先选择 FloorGrassToBricksSquare

将 Sprite mode 改为 multiple,pixels per unit 改为 64,单击右下方 apply 应用修改

现在它还是单个精灵,我们要将它进行拆分,在刚刚的窗口中,点击 sprite mode 右下方的 sprite editor;

在窗口中单击 slice,在下拉框中 type 选择 grid by cell count,将 column & row 的值改为3,可以看到图片被分为了 3*3 的9个精灵

在 project 窗口中,可以点击展开 FloorGrassToBricksSquare,可以看到有对应的 9 个瓦片精灵

打开之前的 tile palette,将整个 FloorGrassToBricksSquare 图像拖入其中,在弹窗中选择保存位置,将其保存到 Tiles 文件夹中

现在就可以使用这些瓦片进行绘制了

其他以 Floor 开头的瓦片的操作同上,这里不再重复说明

调整绘制图层

如果启动游戏发现 ruby 不见了,不要惊慌,这是因为 unity 先绘制 ruby,再绘制地图,导致 ruby 被覆盖了

为了避免这种情况,需要设置绘制优先级

再 hierarchy 窗口中选中 Tilemap 游戏对象,在 inspector 窗口中找到 tilemap renderer 组件,将其属性 order in layer 修改为 -10即可

感谢各位的阅读,希望能对各位能够有所帮助!祝我们都能实现自己的梦想!

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值