Unity 2D之Tile Map使用指南
2016年06月16日 16:27
1 点赞
1 评论
更新于 2020-01-11 10:59
如何创建Tile Map
- 依次点击菜单项
GameObject > 2D Object > Tile Map
来创建Tile Map。 - 此时,场景中会出现一个带有子节点的GameObject。该GameObject被命名为Tile Map,并且带有Grid组件,此组件用于决定所有Tile Map子节点的布局。其下的子节点被命名为Layer,Layer包含Tile Map和Tile Map Renderer组件,这个Layer就是瓦片地图的画布。
- 在Tile Map中新建Layer的方法有两种:一是选定Tile Map或者Layer对象,在层级视图中右键点击
2D Object > Tile Map
;二是依次点击菜单项GameObject > 2D Object > Tile Map
直接新建Tile Map。 - 在层级视图中选定对象下方就会新增名为
Layer (*)
的GameObject,这个新的Layer同样也是画布。
调整Tile Map的Grid
- 选定Tile Map对象的Grid组件。
- 在检视面板中对Grid组件进行调整:
- Cell Size(单元格尺寸):指地图网格中每个单元格的大小。
- Cell Gap(单元格间距):即地图网格中每个单元格间的距离。
- Cell Layout(单元格布局):表示地图网格的单元格布局方式,具体如下:
- Rectangle(矩形):标准的Tile Map矩形布局。
- Hexagon(六角形):六角形Tile Map布局(网格的可视化工作还未完成,但瓦片贴图可以正常排列)。
- Isometric(等边):Tile Map等边布局。
- Custom(自定义):该模式处于开发中。
- Cell Swizzle(单元格布局方向调整):将单元格朝向另外的坐标系来布局。例如从XYZ模式切换为XZY模式,Y和Z的坐标将会被对调,所以对Y坐标的输入将会被映射到Z轴,反之亦然。
- 调整Grid会影响到所有包含Tile Map和Tile Map Renderer组件的子Layer对象。英文原文 “Changes in the Grid will affect all child Layer GameObjects with the Tile Map and Tile Map Renderer components.” 表达的也是这个意思。
Tile Map Tiles
如何利用Sprite创建Tile
- 依次点击菜单项
Window > Tilemap Palette
打开Tilemap Palette。 - 在资源窗口中选择将要使用的一个或多个Sprite。
- 把选定的一个或者多个Sprite拖拽到Tile Map Palette中。
- 这时会弹出一个对话窗口,用于选择保存新Tile资源的目录。
- 选定的文件夹中会生成新的Tile资源,该资源将显示在Tilemap Palette中。
- 也可以单独添加Sprite到Tilemap Palette中。
- 记得保存项目以确保Tilemap Palette中的配置被保存。
Tile Asset
通常瓦片贴图是由实际的Sprite排列而成。这里采用的实现方式是使用中间资源来引用Sprite,而非直接由Sprite平铺地图。这种方式为瓦片本身提供了多种可能,在瓦片与地图间构建了灵活可靠的系统。
属性说明
- Sprite:当前Tile Asset使用的Sprite。
- Color:用于给材质着色。
- GameObject:为贴图附加一个游戏对象。
- Flags:多种标识选项。
- Collider Type:暂不支持。
Tile Map Palette
操作方式
- 按住
Alt + 鼠标左键
平移调色板。 - 按住鼠标中键平移调色板。
- 使用鼠标滚轮放大或缩小。
- 左键单击选中一个Tile。
- 按下左键并拖拽选中多个Tile。
管理Tile Map Palette
- 单击Tile Map Palette下拉列表的
+
按钮新建Tile Map Palette。 - 选中下拉列表中的Tile Map Palette对象后右键点击打开菜单,点击菜单中的
Edit…
来重命名该Tile Map Palette。 - 选中下拉列表中的Tile Map Palette对象后右键点击打开菜单,点击菜单中的
Delete
来删除该Tile Map Palette。 - 注意:默认的Tile Map Palette无法通过这个方式删除或重命名。
- 改动过后切记保存项目!
编辑Tile Map Palette
- 从下拉菜单中选择需要编辑的调色板。
- 点击下拉菜单右边的锁定按钮打开锁进行编辑。
- 调整调色板:
- 根据选定的工具,点击Tile来绘制或擦除调色板中Tile。
- 按下
Ctrl + 鼠标左键
选定调色板中的Tile,可以同时选定多个Tile。
- 处理完毕后点击下拉菜单右边的锁按钮来锁定完成编辑的调色板。
- 记得保存项目来保存编辑的调色板。
Tile Map绘制
- 选定需要绘制的Tile Map来启用绘图工具。
- 在Tile Map Palette中可以找到用来绘制Tile的绘图工具。
- 点击绘制工具中的画笔图标,从Tile Map Palette中选定一个Tile然后左键点击场景视图中的Tile Map来进行绘制。
- 使用绘制工具可以将选中的所有Tile绘制在场景中,在Tile Map Palette中左键单击并拖拽即可选择相应的Tile。
- 使用绘制工具时,按住
Shift
会切换为擦除工具。 - 矩形工具用于在Tile Map中绘制矩形块,并由选定的Tile来填充。
- 选取工具用于从Tile Map中选取要绘制的Tile。按下左键并拖拽可以一次选取多个Tile。在绘制工具模式下按住
Control
就会切换为选取工具。 - 填充工具用于将选定区域填充为选定的Tile。
Tile Map 快捷键
Shift + 鼠标左键
:擦除Tile。Ctrl + 鼠标左键
:选择Tile。Alt + 鼠标左键
:平移场景视图。
下面这些快捷键只有在场景视图激活时起作用。因此当在调色板中选定了一个Tile,需要右键单击场景视图来激活它。
- 按下
Y
键:将选定的Tile垂直翻转。 - 按下
X
键:将选定的Tile左右翻转。 - 按下
.
(句号):顺时针旋转。 - 按下
,
(逗号):逆时针旋转。
如何创建可编程的Tile
- 新建一个
BaseTile
(或者任何BaseTile
的子类如Tile
)子类。 - 在新的Tile类中重写一些必要的方法,通常需要重写的方法如下:
- RefreshTile 方法:决定了当Tile被加入到Tile Map中,有哪些邻近的Tile需要被更新。
- GetTileData方法:决定了Tile在Tile Map中的显示。
- 使用
ScriptableObject.CreateInstance<(Your Tile Class)>()
来创建新类的实例。可以在编辑器中将这个新的实例转化为资源,这样就可以通过AssetDatabase.CreateAsset()
来重复调用新实例。 - 也可以为新的Tile类自定义编辑器,这与脚本化对象的自定义编辑器方式相同。
- 记得保存项目确保新的Tile资源得以保存。
来源:unity官方平台