TitleMap瓦片地图
Contents
什么是Titlemap?
- Tilemap一般称之为 瓦片地图或者平铺地图
- 是Unity2017中新增的功能 主要用于快速编辑2D游戏中的场景
导入Titlemap包
Window-PackageManager 导入
瓦片
创建瓦片
方法一:
Assets——>Create——>Tile
方法二:
- 打开Tile Palette瓦片调色板窗口
- 新建一个瓦片地图编辑文件
- 将资源拖入到窗口中选择要保存的路径
瓦片参数
- Preview :预览图
- Sprite :瓦片关联的精灵纹理
- Color : 瓦片的颜色
- Collider Type : 碰撞器类型
- None 不生成碰撞器
- Sprite 基于精灵轮廓生成碰撞器的形状
- Grid 基于瓦片单元格生成碰撞器形状
瓦片调色机
创建瓦片调色器参数

- Name:瓦片调色器名称
- Grid:瓦片的网格布局
- Rectangle:矩形瓦片
- Hexagon:六边形瓦片
- Isometric:等距瓦片,单元格为菱形
- Isometric Z as Y:等距瓦片并且Unity将单元格Z轴转换为局部Y坐标
- Hexagon Type:六边形瓦片地图类型
- Point Top:点朝顶部的六边形
- Flat Top:面朝顶部的六边形
- Cell Size:瓦片绘制到单元格的大小
- Automatic:基于瓦片资源的精灵大小自动设置
- Manual:自定义大小
操作技巧
- 单击瓦片——选择瓦片
- 在多个瓦片上移动——选择多个瓦片
- Alt+左键拖动——平移
- 滚轮键拖动——平移
- 旋转滚轮键——放大/缩小
面板相关

瓦片地图中有多层时,可以再这里选择层级进行绘制

瓦片关键组件相关
Grid组件参数
- Cell Size:网格单元格的大小
- Cell Gap:网格之间的间隔大小
- Cell Layout:网格单元的形状和排列
- Rectangle:矩形
- Hexagon:六边形
- Isometric:等距布局,单元格为菱形
- Isometric Z as Y:等距布局,但Unity将单元格Z轴转换为局部Y坐标
- Cell Swizzle:Unity将XYZ单元格坐标重新排序为你选择的类型
Titlemap组件参数
- Animation Frame Rate:Unity播放瓦片动画的速率。相当于倍速
- Color:瓦片色调颜色
- Tile Anchor:瓦片的锚点偏移
- Orientation:瓦片地图上瓦片的方向。相当于2D平面使用的是Unity中的哪两个轴
Titlemap Renderer组件
- Sort Order:设置所选瓦片地图上的瓦片排序方向
- Mode:渲染器的渲染模式
- Chunk:按位置对瓦片进行分组,并将瓦片精灵一起批处理进行渲染,性能较好
- Individual:单独渲染每个瓦片,会考虑他们的位置和排序顺序。会让瓦片精灵和场景中其它渲染器或自定义排序轴进行交互
- Detect Chunk Culling:渲染器如何剔除瓦片地图的边界
- Auto:自动检测
- Manual:手动设置拓展边界
- Chunk Culling Bounds:当选择手动设置剔除拓展边界时,可以在这里自己填写拓展的值
官方扩展包
新增瓦片类型
规则瓦片Rule Tile(Hexagonal、Isometric)
定义不同方向是否存在连接图片的规则
让我们更加快捷的进行地图编辑

- Default Sprite:默认图片
- Default GameObject :默认游戏对象
- Default Collider:默认碰撞器规则
- Tiling Rules:平铺规则 可以自己添加删除
动画瓦片Animated Tile
可以指定序列帧
产生可以播放序列帧动画的瓦片

- Number Of Animated Sprites:动画有多少张图构成
- Minimum Speed:最小播放速度
- Maximum Speed:最大播放速度
- Start Time:开始播放的时间
- Strat Frame:从那一帧开始播放
管道瓦片Pipeline Tile
根据自己相邻瓦片的数量更换显示的图片

- None:一个都不相邻时使用的图片
- One——Four:相邻1~4个时使用的图片
随机瓦片Random Tile
根据你设置的图片,随机从中选一个进行绘制

- Number Of Sprites:随机图片数量(之后会随机取一个图片来使用)
地形瓦片TerrainTile
有点类似规则瓦片,只不过地形瓦片是帮助你定好的规则

- Filled:填满
- Three Sides:三个面
- Two Sides and One Corner:两面一角
- Two Adjacent Sides:相邻两侧
- Two Opposite Sides:两个相对的侧面
- One Side and Two Corners:一侧和两个角
- One Side and One Upper Corner:一边和上角
- One Side:一面
- Four Corners:四个角
- Three Corners:三个角
- Two Adjacent Corners:两个相邻角
- Two Opposite Corners:两个相反的角
- One Corner:一个角
- Empty:空
权重随机瓦片 WeightedRandomTile
可以不平均随机选择图片的瓦片
知识点七 (高级)规则覆盖瓦片 (Advanced)Rule Override Tile
在规则瓦片的基础上 改变图片或者指定启用的规则
新建自定义笔刷
- 预设体笔刷——用于快捷刷出想要创建的精灵
- 预设体随机笔刷——用于快捷随机刷出想要创建的精灵
- 随机笔刷——可以指定瓦片进行关联,随机刷出对应瓦片
扩展笔刷
- Coordinate Brush 坐标笔刷 —— 可以实时看到格子坐标
- GameObject Brush 游戏对象笔刷 —— 可以在场景中选择和擦除游戏对象仅限于选定的游戏对象的子级
- Group Brush 组合笔刷 —— 可以设置参数 当点击一个瓦片样式时 会自动取出一个范围内的瓦片
- Line Brush 线性笔刷 —— 决定起点和终点画一条线出来
- Random Brush 随机笔刷 —— 和之前的自定义随机画笔类似,可以随机画出瓦片
- Tint Brush 着色笔刷 —— 可以给瓦片着色 瓦片的颜色锁要开启(Inspector窗口切换Debug模式 修改Flags)
- Tint Brush(Smooth) 光滑着色笔刷 —— 可以给瓦片进行渐变着色,需要按要求改变材质
代码控制
- Tilemap组件:用于管理瓦片地图
- TileBase组件:瓦片资源对象基类
- Grid组件:用于坐标转换
//瓦片地图信息 可以通过它得到瓦片格子
public Tilemap map;
//格子位置相关控制 可以通过它 进行坐标转换
public Grid grid;
//瓦片资源基类通过它可以得到瓦片资源
public TileBase tileBase;清空瓦片地图
map.ClearAllTiles();获取指定坐标格子
TileBase tmp = map.GetTile(Vector3Int.zero);设置删除瓦片
map.SetTile(new Vector3Int(0, 2, 0), tileBase);
map.SetTile(new Vector3Int(1, 0, 0), null);
//删除多张 第一个参数填TileBase数组
map.SwapTile(tmp, tileBase);替换瓦片
map.SwapTile(tmp, tileBase);世界坐标转格子坐标
//参数传入世界坐标
grid.WorldToCell();