简介

Unity 的瓦片地图

系统存储和处理用于创建 2D 关卡的 Tile Assets,这使得在 Unity 中创建和迭代关卡设计周期变得容易。Tilemap 系统将所需信息从放置在其上的 Tile 传输到其他相关组件,例如 Tilemap Renderer和Tilemap Collider 2D。

默认情况下,Tilemap 包不包含在 Unity 编辑器中,因此您必须从包管理器下载2D Tilemap编辑器包。

创建 Tilemap 时,Grid 组件会自动成为 Tilemap 的父级,并在您将 Tile 布置到 Tilemap 上时充当指南。要创建、更改或挑选要绘制到 Tilemap 上的 Tile,请使用 Tile Palette (菜单:Window > 2D > Tile Palette)及其工具。有关更多信息,请参阅创建 Tile Palette和绘制 Tilemaps。

About Tilemap Editor | 2D Tilemap Editor | 1.0.0

2D Tilemap Extras | 2D Tilemap Extras | 2.2.7

瓦片组件

Grid网格

Unity3D的2D画板工具:TileMap - 图1

该组件将单元格位置转换为游戏对象的相应本地坐标

  • Cell Size:网格大小,默认是Unity中设置的1mx1m
  • Cell Grap:网格间隙
  • Cell Layout:布局
    • Rectangle:矩形Unity3D的2D画板工具:TileMap - 图2
    • Hexagon:六边形Unity3D的2D画板工具:TileMap - 图3
    • Isometric:等边菱形Unity3D的2D画板工具:TileMap - 图4
    • Isometric Z as Y:等边菱形,将Z轴替换为Y轴
  • Cell Swizzle:坐标系的轴向顺序,默认是XYZ。

Tilemap瓦片地图

Unity3D的2D画板工具:TileMap - 图5

Tilemap(瓦片地图) 组件存储和管理用于创建 2D 关卡的瓦片资产。它将所需信息从放置在其上的瓦片传输到其他相关组件,例如 Tilemap Renderer 和 Tilemap Collider 2D。

Animation Frame Rate(动画帧速率) 设置平铺动画播放的帧速率。增加或减少此值会更改平铺动画的帧速率。例如,如果设置为 2,则平铺动画将以基本帧速率的两倍播放。如果设置为 3,则平铺动画将以基本帧速率的三倍播放。
Color(颜色) 选择要作为色调应用于此瓦片地图上的图块的颜色。设置为白色(默认颜色)可让 Unity 渲染无色调的瓦片。
Tile Anchor(锚点) 单元格的锚点
Orientation(朝向) 选择瓦片地图上瓦片的方向

Tilemap Renderer瓦片地图渲染器

Unity3D的2D画板工具:TileMap - 图6

The Tilemap Renderer component is part of the Tilemap GameObject. It determines how Tiles set on the Tilemap are rendered.

Tilemap Renderer 组件是 Tilemap GameObject 的一部分。它决定了如何 Tiles 渲染 。

Sort Order(排列顺序,原点位置) 设置所选瓦片地图上瓦片的排序顺序
Unity3D的2D画板工具:TileMap - 图7
Mode(渲染模式) 设置 Renderer 的渲染模式。
Unity3D的2D画板工具:TileMap - 图8
+ Chunk:Renderer 按位置对瓦片进行分组,并将它们 Sprites 一起批处理以进行渲染。选择此模式可在 Tilemap 中实现最佳渲染性能。
+ Individual:Renderer 会单独渲染每个瓦片,同时考虑其位置和排序顺序。此模式使瓦片上的精灵能够与 Custom Sorting Axis 中的其他 scene 渲染器交互。
Detect Chunk Culling Bounds
(检测数据块剔除边界)
确定 Render 如何检测用于剔除 Tilemap 块的边界。这些边界扩展了 Tilemap 块的边界,以确保在剔除过程中不会裁剪过大的精灵。
Unity3D的2D画板工具:TileMap - 图9
+ Auto:自动检查
+ Manual:在Inspector面板设置
Mask Interation(遮罩) 设置 Tilemap Renderer 与 Sprite Mask 的关系
Unity3D的2D画板工具:TileMap - 图10
+ None:Tilemap Renderer 不与场景中的任何 Sprite Mask 交互。
+ Visible Inside Mask:Tilemap Renderer 仅渲染 Sprite Mask 覆盖的 Tilemap 区域。
+ Visible Outside Mask:Tilemap Renderer 完全渲染 Tilemap,但减去 Sprite Mask 覆盖的区域。
Material(单元格默认材质) 单元格模式使用此材质。

Palette调色板

设置界面

Unity3D的2D画板工具:TileMap - 图11

Target Editor Mode Unity3D的2D画板工具:TileMap - 图12
+ Enable Dialog:显示一个浮窗,允许您在 Prefab Mode 或 Scene 中编辑目标。
+ Edit In Prefab Mode:仅在预制件模式下编辑瓦片地图
+ Edit In Scene:仅在 Scene视图中编辑瓦片地图
Active Targets Sorting Mode 设置对瓦片调色板中的 Active Targets 列表进行排序的方法。
Unity3D的2D画板工具:TileMap - 图13
+ 字母升序
+ 字符反序
Restore Edit Mode Active Target 启用此选项后,可在从 Play 模式返回到 Edit 模式后,在 Tile Palette 窗口中恢复目标活动目标
Create Tile Method 此选项可指定在将Texture或Sprite拖放到瓦片调色板时创建瓦片资源的方法
Show Open Tile Palette In Scene View 启用此选项后,在选择与 Tile Palette 交互的对象时,在 Scene 视图中显示 Open Tile Palette 叠加。
Unity3D的2D画板工具:TileMap - 图14

瓦片调色板

Unity3D的2D画板工具:TileMap - 图15

要打开瓦片调色板窗口,请转到window > 2D > Tile Palette 。

https://docs.unity3d.com/2022.3/Documentation/Manual/Tilemap-Painting.html

选择活动目标

Unity3D的2D画板工具:TileMap - 图16

会从当前场景中获取所有激活的Tilemap

Unity3D的2D画板工具:TileMap - 图17

Unity3D的2D画板工具:TileMap - 图18:显示或隐藏场景中对应的Tilemap

Unity3D的2D画板工具:TileMap - 图19:定位到此Tilemap

工具集

Unity3D的2D画板工具:TileMap - 图20

可在设置面板中调整顺序

Unity3D的2D画板工具:TileMap - 图21 在Scene视图中框选单元瓦片 S
Unity3D的2D画板工具:TileMap - 图22 在Scene视图中框选单元区域后,拖动单元区域 M
Unity3D的2D画板工具:TileMap - 图23 笔刷,在Scene视图的单元格上粘贴瓦片 B
Unity3D的2D画板工具:TileMap - 图24 批量笔刷。左键按压拖拽可框选区域,在此区域会粘贴瓦片 U
Unity3D的2D画板工具:TileMap - 图25 采样单元格或区域并创建新笔刷 I
Unity3D的2D画板工具:TileMap - 图26 删除单元格上的瓦片 D
Unity3D的2D画板工具:TileMap - 图27 填充区域。将封闭区域内的空白单元全部填充笔刷瓦片 G
Unity3D的2D画板工具:TileMap - 图28 笔刷瓦片右旋转 ]
Unity3D的2D画板工具:TileMap - 图29 笔刷瓦片左旋转 [
Unity3D的2D画板工具:TileMap - 图30 笔刷瓦片Y轴镜像 shift+[
Unity3D的2D画板工具:TileMap - 图31 笔刷瓦片X轴镜像 shift+]

瓦片地图和笔刷

Unity3D的2D画板工具:TileMap - 图32

A 选择当前与工具集进行交互的瓦片地图图层
B 笔刷使用的调色板
C 对调色板(图集)的工具箱

笔刷类型

Unity3D的2D画板工具:TileMap - 图33

Unity3D的2D画板工具:TileMap - 图34

Default Brush 默认笔刷模式
GameObject Brush 以Assets目录中的GameObject为笔刷瓦片
Group Brush 批量采样?
Random Brush 随机笔刷,先构建一组瓦片图集,拖动笔刷时会随机在图集中选择一个瓦片
Line Brush 线性笔刷,先选取起点,后移动鼠标确定终点

笔刷的Inspector面板

Unity3D的2D画板工具:TileMap - 图35

Grid Selection

单元格或区域的坐标信息

Position 当前选择的单元格坐标或区域的起点格坐标
Size 当前区域面积

Grid Selection Properties

单元格上的瓦片信息

Tile 单元格上的瓦片
Sprite 瓦片的原图片
Offset 瓦片相对于单元格的位移
Rotation 瓦片相对于单元格的旋转
Scale 瓦片的缩放

Modify Tilemap

控制瓦片的位移、旋转、缩放

单元的插入、删除等

Unity3D的2D画板工具:TileMap - 图36

瓦片实例

创建瓦片地图

从GameObject->2D Object->Tilemap

Unity3D的2D画板工具:TileMap - 图37

  • 平行于X轴的正六边形
  • 平行于Y轴的正六边形
  • 菱形
  • 菱形,将z轴作为单元格的高度值,适用于在同一单元格上堆叠不同瓦片。
  • 正方形

创建瓦片图集

导入图片后,设置Sprite Mode为Multiple

Unity3D的2D画板工具:TileMap - 图38

根据实际需求将图片分割

创建调色板

选中瓦片图集->Create->2D->Tile Palette

Unity3D的2D画板工具:TileMap - 图39

Hexagonal Flat-Top 平行于X轴的正六边形
Hexagonal Pointed-Top 平行于Y轴的正六边形
Isometric 菱形
Rectangular 矩形

瓦片碰撞盒

Unity3D的2D画板工具:TileMap - 图40

Tilemap Collider 2D