前言:主要想记录下自己自学的过程、期间遇见的问题、不同版本需要调整的地方,方便以后复习能及时找到对应的部分;同时也希望给想要入门游戏开发、学习unity的各位一些经验,减少一些弯路
之前的文章
上一篇文章已经能够让我们能够通过键盘的输入控制 ruby 的移动,这次我们要制作世界地图
世界地图
我们开发的是2D游戏,这次要制作的是瓦片地图,关于瓦片地图的详细信息可以在用户手册上查看:Unity - Manual: Tilemaps
要制作瓦片地图,首先我们得有地图对应的游戏对象,可以从官方文档上下载,链接我已经复制过来了,直接点击下载即可
创建地图
打开 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即可
感谢各位的阅读,希望能对各位能够有所帮助!祝我们都能实现自己的梦想!