跳到主要内容

地图编辑器(Scene View)

Map Editor 是 MCE 内置的图块绘制工具,灵感来自 RPG Maker XP 的地图编辑器,但直接集成在 Unity 的 Scene View 中。它让你无需离开 Unity 编辑器,就能使用图块调色板绘制地图。

OpenMon Hub 的 Map Editor 选项卡

适用于 Indie 版本及以上。

概览​

每当你打开包含地图的场景时,Map Editor 都会自动激活:包含 GridController 的场景,或者作为备选,任何带有 Tilemap 的场景。激活后,Scene View 中会出现三个覆盖层 —— 工具栏、图块集调色板和状态栏 —— 让你在 Unity 中获得 RPG Maker 风格的工作流程。

当你打开没有地图的场景时,覆盖层会再次自动隐藏,Scene View 恢复正常状态。

无需手动激活

你不需要打开单独的窗口或菜单。只需打开地图场景,覆盖层就会出现。如果没有出现,请确保场景拥有有效的 GridController 组件(或至少一个 Tilemap),然后重新打开。Hub 的 Map Editor 选项卡会列出你的地图场景。

工具栏​

工具栏覆盖层(MCE Map Toolbar)位于 Scene View 中,提供以下控件:

图层选项卡​

选项卡绘制于
Ground场景的第一个 Tilemap:基础地形
Above第二个 Tilemap:地面之上的装饰
Top第三个 Tilemap:绘制在玩家之上的内容(树冠、屋顶)
Events保留给事件;铅笔和橡皮擦在这里不起作用
Collision保留给碰撞视图;铅笔和橡皮擦在这里不起作用

点击选项卡以切换当前的绘制图层。图层按顺序对应场景的 Tilemap:Ground 是找到的第一个 Tilemap,Above 是第二个,Top 是第三个。你的选择会在会话之间被记住。

工具按钮​

按钮快捷键说明
铅笔B在当前图层的地图上绘制图块
橡皮擦E从当前图层移除图块

当前工具会高亮显示。工具栏还有一个 Grid 开关,并显示所选图块的预览及其名称。

图块集调色板​

MCE Tileset 覆盖层是左侧的面板。它列出项目中所有可用的图块 —— 在你的 TileData 资产中注册的图块,以及项目中的任何其他图块资产 —— 并分为两个部分:

自动图块​

自动图块(RuleTile)显示在顶部,标题为 “Autotiles (N)”。这些是能自动与相邻同类型图块连接的特殊图块(例如水边、悬崖边缘、道路交叉口)。当你用自动图块绘制时,MCE 会根据图块的邻居计算出正确的变体。

动画图块在调色板中直接循环播放其帧,因此你可以一眼认出水、岩浆和其他动画地形。

普通图块​

在自动图块下方(分隔线之后),普通图块以网格形式显示。这些是静态图块,绘制出来与所示完全一致。

选择与悬停​

  • 悬停:鼠标移到调色板中的某个图块上时,它会高亮。
  • 点击:点击某个图块会将其选为当前画笔;工具栏会显示它的预览和名称。
  • 所选图块就是铅笔绘制的那个。

调色板顶部有三个快捷按钮:Undo、Redo 和 Save Scene。

绘制工具​

铅笔 (B)​

铅笔用鼠标左键在鼠标位置绘制所选图块。点击放置单个图块,或点击并拖动进行连续绘制。(按住 Alt,即 Scene View 的导航键时不会绘制。)

  • 仅作用于当前图层。
  • 对于自动图块,绘制时会重新计算邻居。
  • 光标会在你将要绘制的单元格上显示一个高亮方块(橡皮擦为红色)。

橡皮擦 (E)​

橡皮擦移除鼠标位置处当前图层的图块。点击擦除单个图块,或点击并拖动进行连续擦除。

网格覆盖层​

当 Grid 开关开启时,Scene View 中会绘制一个与瓦片地图单元格大小匹配的网格,并考虑瓦片地图的位置偏移。这有助于你在绘制时精确对齐图块并查看单元格边界。

撤销、重做和保存​

操作快捷键说明
UndoCtrl+Z撤销上一次绘制或擦除操作
RedoCtrl+Y重做上一次被撤销的操作
SaveCtrl+S保存已打开的场景

Undo 和 Redo 使用 Unity 内置的撤销系统,因此所有地图编辑都可以完全还原,并出现在 Edit 菜单的撤销历史中。调色板上的按钮作用相同。

状态栏​

MCE Status Bar 覆盖层显示光标下单元格的上下文信息:

  • Tile —— 当前图层上图块的名称(或 “(empty)”)。
  • Layer —— 当前图层。
  • Cursor position —— 瓦片地图单元格坐标中的位置。
  • Tool —— 铅笔或橡皮擦。

键盘快捷键​

快捷键操作
B选择铅笔工具
E选择橡皮擦工具
Ctrl+Z撤销
Ctrl+Y重做
Ctrl+S保存场景

提示​

  1. 拖动绘制大面积区域。用铅笔工具点击并拖动,可以快速绘制大片地形。
  2. 用自动图块制作自然的边界。水、悬崖和道路使用自动图块时效果最好 —— 引擎会自动处理边缘过渡。
  3. 逐层工作。在 Ground 上绘制地面地形,然后在 Above 上叠加细节(花、岩石),在 Top 上绘制盖在玩家之上的元素(树冠、屋顶)。
  4. 放心撤销。每一笔都由 Unity 的撤销系统记录。不必担心出错。
  5. 查看状态栏。如果图块没有出现,请确认你位于正确的图层。

故障排除​

问题解决方案
覆盖层没有出现确保场景中有带 GridController(或 Tilemap)的 GameObject。重新打开场景。
图块绘制在错误的图层上检查工具栏中当前的图层选项卡,以及场景中 Tilemap 的顺序。
在 Events 或 Collision 上什么都画不出来这两个选项卡不是绘制图层。
自动图块边缘看起来不对确保相邻图块是同一种自动图块类型。重新绘制该区域。
网格覆盖层未对齐验证瓦片地图的单元格大小是否与你的图块像素大小一致。
调色板是空的调色板会列出你的 TileData 资产中的图块以及项目中的图块资产。请创建或导入一些。