Storing individual tile data and exposing it through the inspector in a Tilemap

I’ve been recently working on creating dynamic / interactable tilemaps on Unity.

The basic idea was to start off with was to create a custom BaseTile class with the most common actions (e.g. is it “walkable”? Can I “look” at it to see a description?). Then, to speed up the process these tiles could be edited into pre-configured objects, something like prefabs, and placed through the Tile Palette to work with them.

When I saw that I was able to select individual tiles through the Grid and that Scriptable Tiles were a thing, I thought that was it, a flexible solution that would let me extend and quickly edit individual tiles leveraging the power of the Grid, the tile palette and the Unity Inspector. Once done, I could serialize all the tiles on a map with a custom extension I made and persist them to memory for an easy map state save solution.

To my surprise, it seems like Unity doesn’t instantiate individual Tile instances, but a single tile represents all tiles in a Tilemap as explained here . Using that method, if we have for instance a two different tile houses and the player burns one, we can’t just edit that individual tile information as if it were a GameObject, we need to swap the sprite of a tile and save the information in an object aside.

For that purpose Unity created the GridInformation script as seen in this repository. The thing is that it doesn’t allow to easily edit each individual tile information through the inspector and adds unnecessary burden to the persistency logic, both to save and load scenes, in order to create synchronicity between the saved information and the tile state.

Is there any way to attach individual tile information to each tile inside a Tilemap and make it available through the inspector? In case that is possible, is there any way for the tiles to react to that information when they are loaded? (e.g. a “burnt” flag setting a different sprite)

And going a bit more in-depth to truly understand Tilemaps, I would be curious why Unity decided to implement a Tiles with this limitation. Would it be a performance issue to have individual Tile instances? Or is it so niche to have dynamic Tiles that it got looked over?

I thought about rolling my own Grid, but it seems like a waste not to use the tools Unity provides, the editor can really save a ton of time if it can be extended properly, but maybe there is no other way.

Tilemap toolkit on the asset store may help. Its free.

Edit: Tileplus toolkit.

Did you find a solution for this? The best I’ve found is data at the tile TYPE level, not tile INSTANCE level.