Releases: SinlessDevil/UnityGridLevelEditor
v2.1.0
Grid Level Editor v2.1.0
Editor quality-of-life update: smarter block icons, free map navigation, and a large internal refactor of the grid view. Public API and saved data are unchanged —
existing levels and blocks keep working.
✨ Added
- Auto block icons. A block now shows its prefab's auto-generated preview (Unity AssetPreview) across the palette, grid, plates and drag ghosts. The icon sprite became
an optional manual override — assigning one is no longer required. - Free map panning. Hold the middle mouse button to drag the grid anywhere inside a clipped viewport that fills the editor down to the log. A ⊕ button recenters the map.
Works alongside zoom (− / + / 1:1, Ctrl + mouse wheel).
🔧 Improved
- Clearer "no space" feedback. When a block or paste can't fit, the blocked cells flash red — and now the blocking multi-cell object's plate flashes too, so it's visible
even under overlapping objects. - Faster block creation. Only an id is required now; without an icon the prefab preview is used automatically.
- Paste reports the exact blocked cells, so the flash highlights precisely where there was no room.
🐞 Fixed
- Grid is centered in the viewport on open, and the ⊕ button recenters it.
- Even cell spacing when the map is larger than the window (the flex viewport no longer compresses the grid vertically).
🧹 Internal / Refactor
- LevelGridView reduced from 1233 → ~270 lines. The God-object was split into focused, single-responsibility components under Editor/Grid: zoom, selection, hit-testing,
highlighting, cell rendering, multi-cell plates, drag/move, palette placement, free-pan and keyboard shortcuts — plus a LevelGridOps domain helper and a shared
GridContext. - De-duplicated the clear/place rules that were previously copied across the grid, the block popup and the clipboard.
- Behavior-preserving throughout; the window and palette drag controller were untouched.
📄 Docs
- README updated (features, controls, structure, changelog).
- Added Assets/Code/LevelEditor/SUBDIVISION_FEATURE.md — a spec for the planned per-cell destructible sub-mask (Battle City–style breakable walls), to be implemented in
a future release.
Full changelog: v2.0.0...v2.1.0
v2.0.0
Grid Level Editor v2.0.0
A major overhaul of the editor. The whole tooling has been migrated from Odin Inspector to UI Toolkit, rebuilt around a fast
drag-and-drop workflow with multi-cell blocks, per-level undo/redo, copy/paste, logging and zoom.
⚠️ Heads-up: this is a breaking release. The editor windows were rewritten — see Breaking changes below.
Highlights
- Full UI Toolkit rewrite — both the Level Editor and Block Library windows are now native UI Toolkit, replacing the old
Odin/IMGUI inspectors. Faster, cleaner and themeable via USS. - Drag & drop authoring — drag blocks straight from the palette onto the grid, with a live snapped footprint preview.
- Multi-cell (Tetris-style) blocks — define rectangle / L / T / cross footprints; placed objects render as one merged plate
and behave as a single object when moving, copying or clearing. - Per-level undo/redo — window-local history (Ctrl+Z / Ctrl+Y), scoped to the current level.
Authoring & editing
- Drag-to-move blocks and whole objects across the grid, with bounds-checked drop validation.
- Multi-selection (Ctrl + click range) with drag-to-move of the whole selection.
- Copy / paste of cells and objects — objects paste as fresh instances, only onto free space.
- Cell settings popup (right-click) — assign a block, rotate via a dial or presets, copy/paste and clear, all in one draggable
panel. - Rotation with live preview while dragging and a single, clean undo step on commit.
Editor experience
- Zoom toolbar (−/+/1:1) plus Ctrl + Mouse Wheel to zoom the grid.
- Collapsible log panel with info / success / error messages for every action.
- Controls overlay (
?button) listing all shortcuts. - Optimized O(1) cell hit-detection for smooth dragging on large grids.
- Block Library window — create / rename / delete blocks, search and sort by id, prefab or icon, plus a visual shape editor
for footprints.
Shortcuts
| Action | Input |
|---|---|
| Place a block | Drag a tile from the palette onto the grid |
| Move a block / object | Left-click drag |
| Select cells (range) | Ctrl + Left-click |
| Block context menu | Right-click |
| Copy / paste | Ctrl + C / Ctrl + V |
| Undo / redo | Ctrl + Z / Ctrl + Y (or Ctrl + Shift + Z) |
| Clear selection | Backspace / Delete |
| Zoom | Ctrl + Mouse Wheel |
Requirements
- Unity 2023.2 or newer
- UI Toolkit (editor UI — ships with Unity)
- Zenject (DI) and DOTween (runtime animations)
Breaking changes
- The editor windows no longer use Odin Inspector — the level editor UI is now pure UI Toolkit. (Odin is still used only by
SaveLoadService.) - The editor windows were rewritten; any local customizations to the old IMGUI windows won't carry over.
Upgrading
- Pull the latest version and open the project in Unity 2023.2+.
- Open
Tools → Grid Level Editor → Block Windowand→ Level Window— existingLevelData/BlockLibraryassets load as-is. - Your levels and blocks under
Assets/Resources/StaticDataare fully compatible — no data migration needed
v1.0.1
Features:
- Custom Unity Editor Window to create and edit level grids
- Popup menu for selecting blocks and rotations
- Hexagonal grid support
- JSON export for runtime integration
- Seamless Odin Inspector GUI
- Built-in support for Zenject and DOTween
To import:
Download the attached .unitypackage
In Unity: Assets > Import Package > Custom Package...
Select the file and import all
Requirements:
Odin Inspector
Zenject
DOTween
Setup Instructions:
Bind all required interfaces as services via Zenject's installer.
Once services are bound, the editor and grid tools are fully functional out of the box.
v1.0.0
First public release of the UnityGridLevelEditor package!
A powerful custom editor tool to help level designers quickly build grid-based (and hex-based!) layouts inside the Unity Editor.
Features:
- Custom Unity Editor Window to create and edit level grids
- Popup menu for selecting blocks and rotations
- Hexagonal grid support
- JSON export for runtime integration
- Seamless Odin Inspector GUI
- Built-in support for Zenject and DOTween
To import:
Download the attached .unitypackage
In Unity: Assets > Import Package > Custom Package...
Select the file and import all
Requirements:
Odin Inspector
Zenject
DOTween
Setup Instructions:
Bind all required interfaces as services via Zenject's installer.
Once services are bound, the editor and grid tools are fully functional out of the box.