All tiles to be added to the Tilemap must inherit from TileBase
. TileBase
provides a fixed set of APIs to the Tilemap to communicate its rendering properties. For most cases of the APIs, the location of the Tile and the instance of the Tilemap the Tile is placed on is passed in as arguments of the API. You may use this to determine any required attributes for setting the tile information.
public void RefreshTile(Vector3Int location, ITilemap tilemap)
RefreshTile
determines which Tiles in the vicinity are updated as this Tile is added to the Tilemap. By default, the TileBase
calls tilemap.RefreshTile(location)
to refresh the tile at the current location. Override this to determine which Tiles need to be refreshed due to the placement of the new Tile.
Example: There is a straight road, and you place a RoadTile
next to it. The straight road isn’t valid anymore. It needs a T-section instead. Unity doesn’t automatically know what needs to be refreshed, so RoadTile
needs to trigger the refresh onto itself, but also onto the neighboring road.
public bool GetTileData(Vector3Int location, ITilemap tilemap, ref TileData tileData)
GetTileData
determines what the Tile looks like on the Tilemap. See TileData
below for more details.
public bool GetTileAnimationData(Vector3Int location, ITilemap tilemap, ref TileAnimationData tileAnimationData)
GetTileAnimationData
determines whether or not the Tile is animated. Return true if there is an animation for the Tile, other returns false if there is not.
public bool StartUp(Vector3Int location, ITilemap tilemap, GameObject go)
StartUp
is called for each tile when the Tilemap updates for the first time. You can run any start up logic for Tiles on the Tilemap if necessary. The argument go is the instanced version of the object passed in as gameobject when GetTileData
was called. You may update go as necessary as well.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.