
1. 项目概述为什么我们需要Tiled2Unity如果你正在用Unity开发2D游戏尤其是平台跳跃、RPG或者策略类游戏地图编辑器Tiled几乎是一个绕不开的工具。它免费、开源、功能强大能让你像拼图一样用图块Tile高效地搭建出复杂的游戏世界。但问题来了Tiled导出的.tmx或.json文件Unity并不能直接识别和使用。你需要手动解析这些文件处理图块集Tileset的切割、图层的排序、碰撞体的生成等一系列繁琐工作。这个过程不仅耗时而且极易出错尤其是当你的地图变得复杂包含多个图层、对象层和自定义属性时。这就是Tiled2Unity的价值所在。它不是一个Unity Asset Store里的付费插件而是一个完全免费、开源的解决方案。它的核心作用就是充当Tiled和Unity之间的“翻译官”和“装配工”。你只需要在Tiled中完成地图设计然后通过Tiled2Unity进行一个简单的预处理就能在Unity中直接得到一个完整的、立即可用的Prefab。这个Prefab包含了所有渲染用的Sprite、正确的图层顺序、以及根据Tiled中绘制的碰撞区域自动生成的碰撞体Box Collider 2D, Polygon Collider 2D等。对于独立开发者和小团队来说这节省的不仅仅是时间更是将精力从重复劳动中解放出来专注于游戏玩法和内容创作本身。我最初接触它是因为一个横版动作项目地图有大量的平台、陷阱和可交互物体。手动导入一次地图需要近半小时而任何在Tiled中的微小修改都意味着这半小时的重来。使用Tiled2Unity后这个流程被压缩到了“保存Tiled文件 - 点击一个按钮 - 回到Unity等待刷新”这三个步骤整个过程不到10秒。这种效率的提升是颠覆性的。接下来我就把这套经过多个项目验证的“三步导入法”的完整细节、背后的原理以及我踩过的所有坑毫无保留地分享给你。2. 核心工具准备与环境配置在开始那神奇的三个步骤之前我们必须把“舞台”搭好。这里涉及两个核心工具Tiled地图编辑器本身以及Tiled2Unity的导入器。它们的安装和配置是后续一切流畅操作的基础。2.1 Tiled编辑器的安装与基础概念Tiled的安装非常简单从其官网可以直接下载到Windows、macOS和Linux的安装包。安装过程没有特殊选项一路下一步即可。安装完成后我建议你花一点时间理解它的几个核心概念这对后续使用Tiled2Unity至关重要图块集Tileset这是地图的“颜料盘”。它是一张包含了许多小图块Tile的大图片。在Tiled中你需要先导入一张图块集图片并定义每个小图块的尺寸例如32x32像素和间距。之后你才能从这张大图中选取单个图块来绘制地图。图层LayerTiled支持多种图层最常用的是图块层Tile Layer和对象层Object Layer。图块层用于放置视觉图块构成地图的背景、地面、建筑等静态视觉元素。你可以有多个图块层来实现视差滚动等效果。对象层用于放置非图块对象。这些对象通常用矩形、椭圆、多边形或点来表示。在游戏开发中对象层是生成碰撞体、放置触发器、设置出生点、标记物品位置的关键。例如你可以画一个多边形来精确表示一个复杂形状的平台碰撞体。自定义属性Custom Properties这是Tiled非常强大的功能。你可以为整个地图、某个图层、某个图块在Tileset中定义甚至某个对象添加自定义的键值对属性。Tiled2Unity可以读取这些属性并将它们传递给Unity中的游戏对象。比如你可以给一个“尖刺”图块添加一个属性Damage: 10或者在某个区域对象上添加属性IsWater: true。注意在开始用Tiled为Unity项目制作地图前请务必确保你的图块集图片是2的幂次方尺寸如256x256, 512x512并且导入Unity时的Texture Type设置为Sprite (2D and UI)Wrap Mode设置为Clamp。这能避免许多潜在的纹理采样和拼接问题。2.2 Tiled2Unity的获取与导入Tiled2Unity不是一个需要独立安装的软件它本质上是一个Unity包.unitypackage。你需要从它的GitHub发布页面下载最新版本的.unitypackage文件。下载访问Tiled2Unity的GitHub仓库在“Releases”页面找到最新的.unitypackage文件并下载。导入Unity在你的Unity项目中依次点击Assets - Import Package - Custom Package...选择你下载的.unitypackage文件在弹出的窗口中全部勾选然后点击“Import”。导入完成后你的Project窗口会出现一个名为“Tiled2Unity”的文件夹。关键目录说明Tiled2Unity/Editor/存放了所有的编辑器脚本包括那个最重要的“导出”功能。Tiled2Unity/Prefabs/稍后由Tiled2Unity生成的Prefab会放在这里。Tiled2Unity/Materials/和Tiled2Unity/Shaders/包含了一些默认的材质和着色器用于渲染导入的地图。大多数情况下你不需要改动它们。导入成功后你会在Unity的菜单栏看到一个新的菜单项Tiled2Unity。这就表示环境配置成功了。2.3 项目初始设置最佳实践在真正动手前我强烈建议你按照以下方式设置你的Unity项目结构这会让资源管理清晰很多Assets/ ├── _ThirdParty/ # 存放所有第三方插件包括Tiled2Unity │ └── Tiled2Unity/ ├── Art/ │ ├── Tilesets/ # 存放所有的图块集图片 │ └── Sprites/ # 存放其他精灵 ├── Maps/ │ ├── Tiled/ # 存放原始的.tmx和.tsx (tileset) 文件 │ └── Exported/ # 存放Tiled2Unity导出的中间文件(.tiled2unity.xml) └── Prefabs/ # 存放游戏预制体Tiled2Unity生成的地图Prefab也会链接到这里这样做的好处是你的Tiled工程文件.tmx和它引用的图块集图片.tsx和图片文件在Unity项目外或在一个特定目录内进行编辑。当你保存Tiled地图时只需要将.tmx文件和用到的图块集图片复制到Assets/Maps/Tiled/目录下然后执行Tiled2Unity的导入步骤即可。这种物理分离能有效避免Unity自动导入器对正在编辑的文件的干扰。3. 三步导入法全流程详解现在舞台已经搭好演员工具已就位让我们进入核心的“三步导入法”。这个过程形成了一个高效的工作流闭环。3.1 第一步在Tiled中创建并保存地图这一步是内容创作的核心所有游戏世界的细节都在这里完成。创建新地图在Tiled中设置好地图尺寸以图块数为单位、图块尺寸像素。例如一个100x50的地图每个图块32x32像素那么地图的像素尺寸就是3200x1600。编辑地图构建视觉层使用图块层从图块集中选取图块绘制出地形、背景装饰等。善用多个图层来管理不同深度的元素如远景层、主图层、前景装饰层。规划碰撞与逻辑这是关键创建一个或多个对象层命名为“Collision”、“Triggers”、“SpawnPoints”等。在这些层上使用矩形、多边形等工具绘制出碰撞区域、触发区域和关键点。为碰撞体设置属性选中一个碰撞对象在属性面板中添加自定义属性。例如添加一个属性Unity: Tag值设为Ground。这样Tiled2Unity在生成碰撞体时会自动为其GameObject设置Tag为“Ground”。为图块设置属性在图块集编辑器中选中某个特定图块如一个尖刺图块也可以为其添加自定义属性如Damage: 10或IsLadder: true。这些属性会附加到使用该图块的所有地图格子上。保存文件将地图保存为.tmx文件。重要习惯确保这个.tmx文件和它引用的所有图块集图片文件一起存放在你Unity项目的Assets/Maps/Tiled/目录或你约定的目录下。Tiled2Unity需要能在这个相对路径下找到所有依赖资源。实操心得在Tiled中绘制多边形碰撞体时尽量保持顶点数精简。一个复杂的平台用6-8个顶点定义的多边形远比用几十个顶点定义的“像素级”碰撞体要高效得多在Unity中的物理性能也会更好。记住碰撞体是用于物理模拟的轮廓不是视觉轮廓。3.2 第二步使用Tiled2Unity导出中间文件这是连接Tiled和Unity的桥梁步骤在Tiled编辑器内完成。在Tiled中打开你刚保存好的.tmx地图文件。点击菜单栏的插件 - Tiled2Unity - Export to Tiled2Unity file...。在弹出的保存对话框中导航到你的Unity项目目录下的Assets文件夹内。我强烈建议你保存在一个专门的目录例如Assets/Maps/Exported/。将文件命名为与你的地图相关的名字例如Level01.tiled2unity.xml。点击保存。Tiled会生成一个.tiled2unity.xml文件。这个XML文件包含了地图的所有信息每个图块的位置、图块集信息、图层结构、对象数据以及所有的自定义属性。它不包含图片本身但包含了图片的引用路径。为什么需要这个中间步骤直接让Unity解析.tmx文件并非不可能但.tmx格式可能包含很多Tiled编辑器特有的、Unity不需要的信息。这个导出过程相当于做了一次“数据清洗”和“格式转换”生成一个为Unity优化过的、结构更清晰的XML描述文件同时这个过程也允许Tiled2Unity执行一些预处理如合并碰撞体。3.3 第三步在Unity中导入生成Prefab最后一步回到Unity让Tiled2Unity的编辑器脚本发挥魔力。确保上一步生成的.tiled2unity.xml文件已经位于你的Unity项目的Assets目录下的某个位置例如Assets/Maps/Exported/。在Unity的Project窗口中找到这个.tiled2unity.xml文件并选中它。这时查看Unity的Inspector窗口你会看到Tiled2Unity为该文件提供的专属导入设置面板。在这个面板中你可以进行一些导入配置大多数情况下默认即可Scale导入比例。默认为1表示1个Tiled图块像素对应Unity世界空间的1个单位。如果你的游戏单位是“米”而图块是32像素你可能想设为0.03125(1/32) 或保持1然后在Sprite的Pixels Per Unit里统一调整。Depth每个图块层的深度增加值用于实现图层间的Z轴排序对于Orthographic相机。Layer和Tag可以设置整个地图Prefab默认所在的Unity Layer和Tag。点击Inspector面板下方的Import Tiled2Unity按钮。Unity开始处理。控制台会输出处理日志。处理完成后你会在Assets/Tiled2Unity/Prefabs/目录下或者在你.xml文件同级目录取决于版本找到一个生成好的Prefab其名称与你.xml文件相同如Level01.prefab。将这个Prefab拖入你的场景Hierarchy中。你会立刻看到一个和Tiled中设计完全一致的地图包括所有图层和碰撞体在Scene视图中勾选Wireframe或Colliders可见。至此一个带有完整视觉和物理碰撞的游戏地图就从Tiled无缝迁移到了Unity中。你可以像操作任何其他Unity GameObject一样操作这个地图Prefab移动、旋转、实例化。4. 高级功能与深度定制解析掌握了基本流程你可能会遇到更复杂的需求。Tiled2Unity的强大之处在于它提供了丰富的扩展点让你能深度控制导入过程。4.1 自定义属性的高级应用自定义属性是Tiled2Unity与Unity逻辑通信的生命线。前面提到了给碰撞体设置Tag这仅仅是冰山一角。为GameObject添加组件你可以在Tiled中为一个对象比如一个敌人出生点添加属性Unity: Component值设为EnemySpawner。前提是你需要在Unity中有一个名为EnemySpawner的MonoBehaviour脚本。Tiled2Unity在生成该对象时会自动为其挂载这个脚本组件。传递初始化参数继续上面的例子你还可以添加属性SpawnType: Flying和Wave: 2。Tiled2Unity会将这些属性以“字符串”形式传递给生成的GameObject。你需要在EnemySpawner脚本的Start()或Awake()方法中通过代码读取这些属性来初始化脚本。// 在EnemySpawner脚本中 void Start() { // 通过Tiled2Unity的TiledComponentHelper获取属性 var helper GetComponentTiled2Unity.TiledComponentHelper(); if (helper ! null) { string spawnType; if (helper.TryGetCustomProperty(SpawnType, out spawnType)) { // 根据spawnType初始化逻辑 } string waveStr; if (helper.TryGetCustomProperty(Wave, out waveStr)) { int wave int.Parse(waveStr); // 使用wave } } }控制图块生成你甚至可以给图块层或单个图块添加属性来控制生成的Sprite Renderer的Sorting Layer、Order in Layer或者附加特定的材质。注意事项自定义属性的名称是大小写敏感的且在Unity中读取时需要确保属性名完全一致。我个人的习惯是所有自定义属性名都采用PascalCase或camelCase并在项目文档中统一记录。4.2 碰撞体生成规则与优化Tiled2Unity如何将Tiled中绘制的矩形、多边形对象变成Unity的Collider 2D这里面有很多可配置的细节。默认行为在对象层上绘制的任何矩形、椭圆、多边形或多段线默认都会生成对应的BoxCollider2D,CircleCollider2D,PolygonCollider2D或EdgeCollider2D。生成的Collider 2D组件会被添加到代表该对象的GameObject上。碰撞体合并这是Tiled2Unity一个非常重要的性能优化功能。如果多个相邻的矩形碰撞对象共享相同的属性如相同的Tag、LayerTiled2Unity在导入时默认会尝试将它们合并成一个更大的矩形碰撞体或者一个更复杂的多边形碰撞体从而减少场景中Collider组件的数量提升物理性能。你可以在.tiled2unity.xml文件的导入设置中调整这个行为。控制碰撞体类型通过自定义属性Unity: Collider你可以强制指定碰撞体类型。例如即使你画了一个矩形你也可以设置属性Unity: Collider为PolygonTiled2Unity会生成一个包裹该矩形的多边形碰撞体虽然和BoxCollider效果一样但有时在特定脚本处理时需要。触发器Is Trigger如果你想将一个碰撞体设为触发器只需在Tiled中为该对象添加一个布尔类型的属性Unity: IsTrigger值为true。常见问题与排查有时你会发现导入后碰撞体位置不对。这通常是因为Tiled中对象的坐标原点与Unity中GameObject的坐标原点Pivot理解不一致。在Tiled中矩形对象的坐标是其左上角取决于Tiled设置而Unity中Sprite的Pivot点可以设置为中心或底部等。你需要确保在Unity中用于生成地图的Sprite的Pivot设置是统一的通常Center或Bottom比较常用并在Tiled中绘制碰撞体时考虑到这个偏移。如果出现偏差可以通过调整Tiled中对象的位置或者在Unity中为碰撞体对象添加一个空的父GameObject来调整局部坐标进行修正。4.3 材质、着色器与渲染排序默认情况下Tiled2Unity会使用自带的Tiled2Unity材质和简单的着色器来渲染地图。这对于大多数2D游戏来说已经足够。但如果你需要更高级的视觉效果如法线贴图、光照、自定义混合等你就需要介入材质管理。替换默认材质你可以在导入.tiled2unity.xml文件时的Inspector面板中指定一个自定义的材质来代替默认材质。这个材质将应用于该地图的所有Sprite Renderer。按图层分配材质这是一个更精细的控制。你可以在Tiled中为不同的图块层添加自定义属性Unity: Material值指向你项目中的一个材质球路径如Materials/BackgroundMat。这样该图层中的所有图块都会使用你指定的材质。渲染排序Sorting2D渲染排序由Sorting Layer和Order in Layer共同决定。你可以在Tiled中通过自定义属性来控制Unity: SortingLayerName设置Sorting Layer的名称。Unity: OrderInLayer设置整数排序值。 例如你可以为“远景层”设置SortingLayerName: Background和OrderInLayer: -10为“前景层”设置SortingLayerName: Foreground和OrderInLayer: 10从而实现正确的遮挡关系。实操心得对于使用Unity的2D URPUniversal Render Pipeline项目你需要为Tiled2Unity创建兼容URP的2D Lit或Unlit材质。具体步骤是创建一个新的Material将其Shader改为Universal Render Pipeline/2D/Sprite-Lit-Default或其他2D Sprite Shader然后将这个材质赋给Tiled2Unity的导入设置或图层属性。这样可以确保你的地图能接受2D灯光的影响。5. 实战工作流与性能优化指南将工具用起来和用得好是两回事。下面分享一套我磨合出来的高效实战工作流以及针对中大型地图的性能优化经验。5.1 团队协作与版本管理策略当多人共同开发一个项目时地图资源的管理需要一些约定。源文件与生成物分离坚持将Tiled的源文件.tmx,.tsx, 图片素材放在Unity项目目录外的一个版本库如Git中管理。而Unity项目内只存放导入必需的副本Assets/Maps/Tiled/下的文件和Tiled2Unity生成的Prefab。在.gitignore中忽略Assets/Tiled2Unity/Prefabs/目录因为Prefab可以从.tiled2unity.xml文件重新生成。工作流程A同学在Tiled中修改了地图保存.tmx文件。A同学将.tmx文件和可能更新的图块集图片复制到Unity项目的Assets/Maps/Tiled/目录。A同学在Tiled中执行“导出到Tiled2Unity”将.tiled2unity.xml文件保存到Assets/Maps/Exported/。A同学在Unity中选中该.xml文件点击Import Tiled2Unity重新生成Prefab。A同学提交Git变更.tmx,.tsx, 图片如果需要以及.tiled2unity.xml文件。不提交重新生成的.prefab和.meta文件。B同学拉取代码后在Unity中看到新的.xml文件Unity编辑器会自动检测并触发Tiled2Unity的导入流程重新生成最新的Prefab。这样确保了所有人地图状态一致。自定义属性文档化在团队内部维护一个文档记录所有约定的自定义属性键名及其含义、期望的值类型如Unity: Tag,SpawnType: string,Damage: int。这能极大减少沟通成本。5.2 大型地图的切割与动态加载Tiled可以创建非常大的地图但一次性将整张巨幅地图导入Unity作为一个Prefab会导致加载卡顿、内存占用高、Draw Call激增等问题。解决方案是“化整为零”。在Tiled中规划分块将你的大型世界地图在Tiled中按照逻辑区域或固定尺寸如屏幕的2-3倍大小切割成多个较小的.tmx文件。每个文件是一个独立的地图块。分别导入对每个.tmx文件都执行上述三步导入法生成对应的Prefab如Region_A1.prefab,Region_A2.prefab。在Unity中实现动态加载创建一个“地图管理器”脚本负责根据玩家位置计算当前应该加载哪些地图块Prefab。使用Resources.Load或Addressables系统来异步实例化所需的地图块Prefab。对于离开玩家视野的地图块销毁或回收其实例释放内存。为了无缝衔接相邻地图块在Tiled设计时需要有重叠的边缘区域比如重叠1-2个图块确保玩家在边界移动时不会看到缝隙。踩坑记录早期我尝试用一个巨大的Tiled地图导入后通过脚本在运行时按网格分割SpriteRenderer和Collider。这极其复杂且容易出错。后来改为在数据源头Tiled进行分块每个块独立导入为Prefab管理起来清晰得多也便于分工协作不同的人负责不同区域的地图设计。5.3 性能分析与Draw Call优化即使分块了单个地图块内如果图块种类繁多、图层复杂Draw Call也可能很高。以下是一些优化思路使用“图块调色板”在制作图块集时尽量将同一场景、同一色调的图块整合到一张大图上。避免使用大量零碎的小图片作为图块集。一张2048x2048的图块集包含1024个32x32的图块远比1024张32x32的小图片性能好得多因为减少了纹理切换。合并图层在满足视觉效果的前提下尽量减少图块层的数量。Tiled2Unity会为每个图块层生成一个GameObject下面挂载所有该层的Sprite。层数越多GameObject数量越多虽然对渲染排序影响不大但会增加场景树复杂度。审视碰撞体利用好Tiled2Unity的碰撞体合并功能。用简单的几何体Box, Circle近似代替复杂的Polygon Collider。对于不会移动的静态地形确保其碰撞体勾选了Used By Composite然后使用Composite Collider 2D进行进一步合并这是Unity 2D物理系统一个强大的静态碰撞体优化工具。使用Unity Profiler在Unity编辑器中运行游戏打开Window - Analysis - Profiler重点关注Rendering区域下的SetPass Calls相当于Draw Call。观察当地图出现在屏幕上时Draw Call的峰值。通过上述方法努力将单个地图块的Draw Call控制在几十到一百以内对于移动平台尤其重要。6. 常见问题排查与解决方案实录无论工具多么强大在实际开发中总会遇到一些“怪现象”。这里记录了我遇到的一些典型问题及其解决方法。6.1 导入后地图显示为粉色Missing Material这是最常见的问题表现为地图在Unity中显示为洋红色粉色。原因Unity找不到渲染地图所需的材质球。解决方案检查Assets/Tiled2Unity/Materials/目录下是否存在Tiled2Unity.mat文件。如果不存在可能是导入不完整重新导入Tiled2Unity的.unitypackage。如果材质存在但仍为粉色检查该材质的Shader是否正确。如果是内置渲染管线Shader应为Tiled2Unity/Default。如果是URP你需要手动创建一个使用URP 2D Sprite Shader的材质并在导入.tiled2unity.xml时在Inspector面板中指定这个自定义材质。检查图块集图片的导入设置。确保Texture Type为Sprite (2D and UI)并且Advanced - Read/Write Enabled最好勾选虽然这会增加内存但某些情况下Tiled2Unity需要读写纹理数据。6.2 碰撞体位置或尺寸不匹配地图看起来正常但角色会掉下去或者卡在空中。原因1Sprite的Pivot点不一致。Tiled2Unity在生成Sprite时其位置是基于图块网格计算的。如果图块集图片中每个图块的“有效内容”没有居中或者你期望碰撞体相对于图块底部对齐但Pivot是中心就会偏移。排查与解决在Unity中检查生成的Sprite的Pivot设置。选中一个地图Prefab展开其子物体找到一个Sprite Renderer查看其Sprite属性。点击Sprite编辑器查看Pivot点位置通常是Center。在Tiled中绘制碰撞体时要考虑到这个Pivot。例如一个32x32的方块图块Pivot在中心那么它的底部在世界坐标的Y轴上就是-16。如果你想让一个平台碰撞体紧贴图块底部你需要在Tiled中把矩形碰撞体的Y坐标设置为图块Y坐标16具体计算取决于Tiled的坐标系。更稳健的做法在Tiled中使用对象层来精确放置碰撞体而不是依赖图块层的自动碰撞虽然Tiled2Unity支持为特定图块定义碰撞框。通过对象层你可以完全控制碰撞体的位置和形状不受Sprite Pivot的影响。原因2导入比例Scale设置错误。在第三步的导入设置中Scale参数会影响整个Prefab的缩放包括碰撞体。排查与解决确认你的Scale设置是否符合预期。如果你的游戏世界1单位1米而你的图块是32像素你可能需要设置Scale: 0.03125。一个简单的测试方法是在Unity中创建一个1x1的Cube对比你的地图图块大小调整Scale直到匹配。6.3 自定义属性在Unity中读取不到你在Tiled中设置了Unity: Tag为Ground但生成的GameObject Tag仍是Untagged。原因1属性名拼写或格式错误。Tiled2Unity对属性名是严格匹配的。排查在Unity中选中生成的地图Prefab在Inspector中展开其子对象找到你认为应该设置了属性的那个GameObject。查看其Tiled Component Helper脚本如果有里面会列出所有从Tiled导入的自定义属性。核对属性名是否完全一致包括大小写。原因2属性被设置在错误的层级。自定义属性可以设在地图、图层、图块、对象上。确保你的属性是设在了正确的目标上。例如给整个图层设置Unity: Tag那么这个图层上所有对象都会继承这个Tag但如果你在某个对象上又设置了不同的Tag则会覆盖图层的设置。原因3读取代码的时机不对。如果你在自定义的MonoBehaviour脚本中读取属性确保在Start()或Awake()方法中读取。在OnEnable()中读取可能为时过早因为Tiled2Unity组件可能还未完成初始化。6.4 导入速度慢或Unity编辑器卡顿当地图非常大、图块非常多时导入过程可能会比较慢或者导入后Unity编辑器操作卡顿。优化导入速度导入过程主要是解析XML和生成大量GameObject/Component。确保你的电脑有足够的内存。对于超大型地图坚持使用“分块导入”策略。优化编辑器运行性能禁用不必要的Gizmo在Scene视图的Gizmo下拉菜单中关闭Sprite Renderer等的图标显示当场景中有成千上万个Sprite时这能显著提升Scene视图的流畅度。使用Occlusion Culling (2D)虽然Unity的Occlusion Culling主要针对3D但对于2D你可以通过自定义脚本根据摄像机视口动态禁用视野外的Sprite Renderer和Collider组件这能极大减少每帧的渲染和物理计算量。Prefab嵌套化如果地图中有大量重复的复杂元素如一棵由多个图块组成的树可以先将这些图块在Tiled中组合成一个“图块对象”Tile Object或者更好的方法是在Unity中将这些图块单独做成一个子Prefab然后在地图Prefab中引用它。这样可以减少根层级下的直接子物体数量提升场景树遍历效率。这套从工具配置、核心流程、高级定制到实战优化和问题排查的完整指南基本覆盖了使用Tiled2Unity进行高效2D地图开发的所有核心环节。它的本质是将美术设计Tiled与程序逻辑Unity通过一种规范化的数据流自定义属性连接起来从而建立起稳定、可预测的生产管线。一旦你熟悉了这套流程地图迭代将变得无比迅速你可以真正实现“在Tiled中修改在Unity中即时看到效果”的顺畅体验把创造力完全聚焦在游戏玩法本身。