游戏地图的创建,这一章是地图背景的创建,比如可以增加房子,树木,池塘,围墙等等。

1.如下图所示,在层次窗口中,选择2D object-Tilemap

unity地图模型 unity游戏地图制作教程_结点

这样,将会建立网格和子结点,贴片地图。我们将地图分为一个一个网格,并在上面放上类似瓷砖。

unity地图模型 unity游戏地图制作教程_unity3d_02

3.建立一个新的瓷砖

在工程窗口中,Assets > Art,右击新建一个文件夹,名为Tiles。双击打开它,右击Create > Tile,新建一个Tile,名为FirstTile。

unity地图模型 unity游戏地图制作教程_游戏_03

从图上可以看到,有一个Sprite精灵类型可以填充,也就是这一块可以放上房子的一部分,池塘的一部分。

4.指定一个精灵到FirstTile瓷砖上,Assign a Sprite to FirstTile

unity地图模型 unity游戏地图制作教程_unity地图模型_04

 将上面的图片复制到Sprites 文件夹中。

FirstTile 在工程窗口中,确保被选中。

unity地图模型 unity游戏地图制作教程_unity3d_05

将上面的图片拖到FirstTile 上。

现在是时候,在地图上,哪一个网格用哪一个精灵填充了。

5.增加FirstTile到面板上,Add FirstTile to your Palette

地图就像是画布一样,Tile就像是瓷砖一样,可以在地图上任意地画画。

通过菜单,Window > 2D > Tile palette,打开Tile Palette window

unity地图模型 unity游戏地图制作教程_unity地图模型_06

上面是空的,我们需要新建它。

选择建立新的Create New Palette,名为GamePalette。并保存它到Tile 文件夹中。

unity地图模型 unity游戏地图制作教程_游戏_07

拖动FirstTile到GamePalette窗口中。

unity地图模型 unity游戏地图制作教程_unity地图模型_08

选择中间的图片,并利用上面的刷子工具,就可以任意地画地图了。

unity地图模型 unity游戏地图制作教程_c#_09

如果上面有间隙的话,是因为图片和网格的大小不一致。

6.Fit your Tile Sprite to the Grid

在层次窗口中,选择网格游戏对象Grid GameObject。可以看到Cell Size中的x,y都为1。

unity地图模型 unity游戏地图制作教程_c#_10

在工程窗口中,选择Tile Sprite

unity地图模型 unity游戏地图制作教程_unity3d_11

注意上面的Pixels Per Unit为100。

unity地图模型 unity游戏地图制作教程_游戏_12

但是图片的大小如果是64*64的话,则上图则要改Pixels Per Unit为64。点应用。

7.什么是瓷砖集,What is a Tileset?

在地图上画图通常是通过Tileset来实现的。

8.Adjust a Tileset

在工程窗口中,Art > Sprites > Environment,通过小箭头,选择FloorBricksToGrassCorner。

这个图片实际上包含有9个不同的图片。

在右边的视图中,选择Sprite Mode为Multiple,Texture Type为2D类型 。

unity地图模型 unity游戏地图制作教程_结点_13

9.调整瓷砖集中的精灵设置,Adjust the Tileset’s Sprite Settings

在视图中,点击Sprite Editor。

unity地图模型 unity游戏地图制作教程_unity3d_14

上图中,类型为Grid By Cell Count。行列为3*3。点Slice,将一个图片分为9个。

10.Assign your Sprites to Tiles

11.Adjust the Other Tilesets

重复以上的,将以floor开头的图片文件都分为9个。

12.Paint your Tilemap

13.Paint Your Tilemap

现在就可以在中间的地图上,利用面板上分割的精灵,通过工具刷,任意地画图了。

unity地图模型 unity游戏地图制作教程_游戏_15

点Play运行,如果有的看不到,可能是层次一样,相互覆盖了。

14.改变地图的层次,Change the Order in Layer for your Tilemap

unity地图模型 unity游戏地图制作教程_c#_16

通过Order in Layer为-10。则地图将在最下面一层。