Thank you for this wonderful tool!
A downloadable tool
(Last updated Dec 2nd, 2019. Online documentation available on Read the Docs.)
Note: Please report any bugs to my Github page.
SuperTiled2Unity is a collection of C# Unity scripts that can automatically import Tile Map Editor files directly into your Unity projects.
The goal of SuperTiled2Unity is simple: Tiled files saved to your Unity project are automatically converted to prefabs you can drop into your scenes. That's it.
SuperTiled2Unity it a complete rewrite of my popular Tiled2Unity tool, first released in 2014. Unity has seen many improvements in that time and SuperTiled2Unity takes advantage of Scripted Importers to support Tiled files directly within Unity. There is no longer any need for a separate exporter tool which means SuperTiled2Unity is supported on every OS right out-of-the-box.
SuperTiled2Unity uses tile-based classes now native to Unity (like Tilemap) so that built prefabs are closer to Unity's vision of such assets.
This tool is currently available for free but donations (or even a kind word) are always appreciated.
Click download now to get access to the following files:
- SuperTiled2Unity Version 1.9.156 days ago
- SuperTiled2Unity Version 1.9.059 days ago
- SuperTiled2Unity Version 1.8.364 days ago
- SuperTiled2Unity Version 1.8.271 days ago
- New Example Project for Advanced Sorting76 days ago
- SuperTiled2Unity Version 1.8.176 days ago
- SuperTiled2Unity Version 1.8.093 days ago
- SuperTiled2Unity Version 1.7.0Oct 09, 2019
Log in with itch.io to leave a comment.
Great tool! I much prefer it to Unity's tilemap tools.
I have one question:
My Tiled tilemap is set to "right-up", however when I import my tilemap to Unity, everything seems to work as "right-down" by default, and all my tiles have negative Y positions. Is there a way to change this behaviour?
Hi there, @halfcut. Unfortunately Tiled and Unity use different coordinate systems so I picked the solution that I hoped was the best case given what we have to work with. I wanted to keep the top-left corner of a map the "origin" but that did force my hand for maps to go down the negative Y axis. :/
Hi! Way to make life so easy for everyone! Thanks so much for the generous application. Just a quick question. Say I make a map with some collisions in Tiled. And then I import it into Unity. It isn't the right size so I manually resize the map to fit my sprites. And then I adjust the camera, and all is well. But then I go back into Tiled and decide to add a new section to the map. So I resize the map to double in size. And then I add a bunch more collisions. And then save all the files, overwriting the pre-existing ones. Now as far as I can figure out, I have to reimport it all into Unity again, resize it all, and fix the camera once again. I just want to streamline it so I don't have to take 5 minutes fixing everything every time I make a change to the tile map or tile sets.
There is probably a simple solution right in front of my eyes, but I haven't been able to figure it out yet even after looking through some of the documentation. I found the "Reimport Tiled Assets" button in the settings, that sounds like it would help but it seems to have done nothing.
Thank you all in advance for any help.
Hi there, jets1234. Sorry for the late reply. For future reference issues like this are much more visible to me on my Github page.
There is indeed a simple solution for the size of your maps: Whatever Pixels Per Unit setting you are using for your sprites must be used for your tilesets and maps too.
You can set PPU on a per-map or per-tileset basis or you can change them for every asset in your project in the project settings ...
Camera settings are another story though. It sounds like you're trying to auto-fit your camera every time you resize your map (that isn't common, I think)? For that you're going to have to write some custom scripts for your camera.
hey there! I just wanted to thank you for everything youve done and for keeping the proj alive. I know too well how much of a pain it is to maintain a tool. Again, thank you for what you've done for everyone. Cheers!
Hi Seanba, thanks for your tool.
I am using LightweightRenderPipeline and 2D Renderer to achieve 2d lighting on sprites. How can I apply this to my tmx imported maps so that they receive light?
I can no longer attach a Sprite Renderer, which is the crucial component to receive lighting.
I figured it out. You have to select all the image layers in the .tmx map, drag and drop SpritesLitDefault on all of them as Material, then set Target Sorting Layers to the correct one. Then add a 2D Point Light and set Target Sorting Layers to the right one as well! Working great.
Hi there, Christopher. I'm glad you got it working. BTW, I recommend you make the assignment of material and sorting layer part of your pipeline through a custom importer. That will save you from having to make any additional changes to your map prefabs after they are imported by ST2U.
You can see and example of a custom importer in action in this repository. It will take a little bit of code on your part to get what you want but it's really nice when your maps "just work" automatically. :)
I'm running into the same issue as Christopher, but I cannot fix it manually as he did because ST2U resets all of my materials back to default every time I reload Unity. I'm attempting to set up a custom importer as you suggested, but so far as I can tell, tilemap renderers cannot be found via getcomponent. How would you suggest changing the material of each tilemap renderer? Or even just a way to make ST2U stop changing my materials would be very helpful! Thanks!
Hi there, Mixxy92. I'm finding that when I have my project set up to use the LWRP with a 2D Renderer that the all Tilemap Renderers and Sprite Renderers are automatically using the Sprite-Lit-Default material. Are you not getting that? (I'm using 2019.2.6f1 btw)
You know, its the strangest thing. I made a custom importer but had literally no code in the importer. But when I changed the tmx files to use the (empty) custom importer, they all changed over to the sprite-lit-default for whatever reason. I can't explain it but as long as it continues working I'm content with it!
BTW, in the Project Settings for SuperTiled2Unity you can assign the default material that you want all your Tilemap and Sprite renderers to use so for most people this will be the easiest/best way to use a custom material.
If you want sometime a bit more complicated like, say, different materials for different Tiled layers then you'll want to use a custom importer.
Hey! I would suggest after applying the proper lighting to your .tmx map, from your Inspector, drag the imported Tiled Map into a folder in Assets as a Prefab. This worked for me pretty well, but I'm sure Seanba's suggestion is better! 😊Can't wait for a release soon. Good luck everyone.
Thank you for this, it helps a lot for work on my Unity projects (such as Distortion)
Just updated to version 1.5.3 and every time I try to make a change to my levels unity crashes.
Also can you please make a discord so people using your tools can communicate with each other just in case they have the same issue and we don't have to wait for a response please.
Hi there. Sorry you're having a problem with this but I of course do not expect a crash to occur when your map is being re-imported.
The best course of action for such issues is to open an issue on my GitHub page: https://github.com/Seanba/SuperTiled2Unity/issues
The first thing I'd like to look at is your Editor log. This link will help you find that on your OS: https://docs.unity3d.com/Manual/LogFiles.html
I'd probably also want to look at your project to see if I can replicate the problem. If that isn't possible (which is understandable) then a small project that does have the bug would be useful.
I'm not sure how helpful having a Discord server would be but I'm open to trying it out. Here's an invite: https://discord.gg/48KsnG
Someone was reporting a similar crashing issues when using Unity 2018.3. I was able to replicate and put a fix in the latest version of SuperTiled2Unity (1.5.4). Hopefully this fixes the problem for you as well.
Thanks. I ran into a problem at first, but after reading below I found out that my files needed to all be in the same folder, and also that it requires Tiled to save it to that folder to resolve the path. So all is good now!
I'm experimenting with the prefab replacement feature. I'd like to be able to replace an object with my prefab but retain the collision geometry as it is. ST2U creates a BoxCollider2D, PolygonCollider2D, or EdgeCollider2D based on the geometry but this collider is lost when the object is replaced with my prefab.
I don't think there's a natural way to merge the colliders into a prefab that would work for everyone, so what I'm hoping is for a way to hook a script to the TMX import. There I could transfer the collider geometry into my prefab. Does such a hook exist already?
Thanks for the excellent tool!
Hi there, Armakuni. This is exactly the kind of thing you would use a Custom Importer for. It's a script you can attach to the importer process to do extra work on your TMX prefab just before the import completes.
This repository here uses one such custom importer and it should serve a decent starting point for you: https://github.com/Seanba/SuperMovingPlatform
Is not working do not trust in this tool I was very reasonable to donate but I would not many errors to import do not resize as well in unity everyone try to use the tile palette in unity is hard pain of butt is the only way to get a fast workflow.
Like I've told you before there is a trivial solution to the problem you were having. Unity has the concept of "Pixels Per Unit" that is used for textures, sprites and tilemaps. SuperTiled2Unity also supports this functionality. All you need to do is make sure you are using the same "Pixels Per Unit" value for your Tiled maps and tilesets.
By default, Unity prefers values of 100 because that works well with their 2D physics systems. Personally, I use a value of 1 so that 1 unit is 1 pixel. YMMV.
If the issue persists then report a bug on my GitHub page and I will look at it further.
Keep in mind this is a project I do in my spare time and make freely available for others. Your aggressive attitude is misplaced even if you did make a donation.
I may not be using Tiled correctly with SuperTiled2Unity but I am getting this error on the Tiled map file:
"SuperTiled2Unity version: 1.4.6, Unity version: 2019.1.0f2
Errors detected in tileset 'Map_Tileset.tsx'. Check the tileset inspector for more details. Your map may be broken until these are fixed.
Could not find tile 63. Make sure the tilesets were successfully imported.
Could not find tile 6. Make sure the tilesets were successfully imported.
Could not find tile 3. Make sure the tilesets were successfully imported.
Could not find tile 4. Make sure the tilesets were successfully imported.
Could not find tile 5. Make sure the tilesets were successfully imported.
Could not find tile 60. Make sure the tilesets were successfully imported.
Could not find tile 61. Make sure the tilesets were successfully imported.
Could not find tile 62. Make sure the tilesets were successfully imported.
Could not find tile 117. Make sure the tilesets were successfully imported."
I'm also getting this error on the Map_Tileset.tsx file even though the roguelikeSheet_transparent.png is in that spot:
"SuperTiled2Unity version: 1.4.6, Unity version: 2019.1.0f2
Missing texture asset: ../../../../RPGGame/Spritesheet/roguelikeSheet_transparent.png"
Is there an up to date walkthrough or maybe you know what I'm doing wrong?
Any help is appreciated. Thank you.
Nevermind I just want to reply to my comment in case anyone else has the same issue. Here is the link I found that fixed my issue. https://github.com/Seanba/SuperTiled2Unity/issues/44
I have a small question about the pivot point of the sprites when they are imported in Unity. We have a rock sprite and when it is imported in Unity, it looks like the pivot point is placed at the very bottom left. The problem is that we absolutely need to be able to change the position of that pivot point. We thought at first that changing the drawing offset in Tiled would also change the pivot, but it doesn't seem to work. Is there anyway to edit the pivot either in Tiled or in Unity (after importing everything)?
Hi there. SuperTiled2Unity puts the pivot point for Tile Objects at the bottom-left corner because that's what Tiled does.
If you need to manage the pivot point of a Tile Object then chances you want to control or manage other aspects of the object. In other words, it's now longer just a decorative tile on your level somewhere but tied into gameplay somehow.
In that case I'd recommend keeping your Tile Object in Tiled but use a "Prefab Replacement" so that those objects are replaced by a "proper" sprite (or some other object) that you have scripting control over.
You can read about Prefab Replacements in SuperTiled2Unity here:
I've been using T2U for a while with no probs, but need to recreate all my objects on 50 levels so want to use Templates.
You mention using ST2U on the Tiled forum so I've installed it and imported my tsx file and tmx file.
I can't see where the level prefab file is that I need - can you point me in the right direction please.
First, thank you very much for this awesome tool and for the previous Tiled2Unity tool.
I have a game which runs perfectly fine with the previous Tiled2Unity code, but migrating to SuperTiled2Unity has made the instantiation of the map very slow (can take 6 seconds to instantiate the map).
I am intantiate the map from a tmx file using (the tmx is being loaded from an asset bundle):
MapGameObject = GameObject.Instantiate(tmxObject);
Can you suggest anything I should try to get back the fast performance I had with the previous library and still migrate to the new library?
Hi there, @adiohaion. I'd like to do some profiling on your project to try to understand what is going on there. Would you mind sending it my way? My email is firstname.lastname@example.org. Thanks.
Hi again, sorry for the late response! I was able to fix it by upgrading to the latest unity version & latest SuperTile2Unity. I also instantiate the map now from a prefab (like we use to do in the previous Tile2Unity) instead of the tmx. Thanks again for the great library!
I need help!!
When I load a .TMX map file it is counted as a game object that I can put into the scene but has no picture. I even imported the tileset .TSX as well as the original sprite sheet but it stays blank! please I need help.
Put all files in the same folder:
Check the tileset path inside the tmx:
Check the image path inside de tsx:
If you want to use relative paths, do as follows:
Hope it helps!
Hi there, PuppyQake. Check the Inspector for your TMX file. Are there any errors there? My guess is that your referenced tileset.tsx file is not in the proper location. (You have to keep relative paths between your TMX , TSX, and texture files)
I’m having the same problem.
Getting error message “Missing texture asset: ../Spritesheet...png”
I imported the tsx, tmx, then png like you said.
When inspecting .tsx and error message pops up ^^^
When inspecting .tmx, “Missing tileset asset: ../...tsx”
Hi there, Dasimar, are your imported tilesets and PNGs in the locations they are expected? It looks like you may have imported them all to the same directory in Unity but they are expected to be in different directories.
Try opening your exported TMX file in Tiled. Is Tiled also complaining that it cannot find your PNG and TSX files?
(BTW, you can use Tiled to find those TSX and PNG files in their new relative locations.)
i'm unfortunately having the same issue. i love tiled but can't for the life of me get it to integrate into unity. i've tried saving all my files in a multitude of different directories yet i just can't seem to figure it out. step by step tutorials online are non existent or don't show how/where they save their tiled projects/tmx/png files. if there is any way to see a step by step process from absolute beginning to end (starting a tiled project, where to import from, where to save files and finally where to export for integration with unity) would be incredibly appreciated. i've gone around so many times that at this point i've only confused myself.
I'm sorry that some people are having difficulty with this. I assumed relative paths between TMX, TSX, and textures would be a straightforward concept for people making games although I concede that Unity assets don't normally have these restrictions.
The easiest thing to do, before you do anything with Unity, is have your Tiled map and all other files it references (tilesets and textures) all live in the same folder on your harddive somewhere. Then, drag that folder into your Unity project in one go.
Hi, Seanba! Thank you for this great tool!
Is there a way to set the Tag and IsTrigger property of the object Collision_Ground based on Tiled custom properties?
Hi there, kolibrigamestudio. If you use a custom property named "unity:isTrigger" on your Tile Layer or Tileset or Collision properties (in Tiled) then those colliders will be made part of a Trigger volume. See the example that comes with SuperTiled2Unity (the overhead scene). The water tiles there make up a trigger volume.
Likewise, you can use a custom property names "unity:tag" to give your Tile Layer a tag. Not this tag will be on your Collision_Ground parent (Trap) however.
Is there any documentation for the layer/object sorting? I'm upgrading from Tiled2Unity and there doesn't seem to be anything that works similar to Tiled2Unity's DepthBuffer/SpriteDepthInMap functions.
Hi there, Max. Sorry for the late reply. I should make a demo of this soon but using a Custom Sort Axis should get you what you want. There's some tips on this here: https://github.com/Seanba/SuperTiled2Unity/issues/34
Thanks, Sean. This is helpful. Which sorter would work best for SpriteRenderers? Still not able to get the sorting quite like Tiled2Unity's Depth Buffer. This also broke transparency for layers at a lower opacity.
Hi Sean! Thank you for 1.3.0! It's helped a ton with some issues I was having before. My sprites are now sorting with tiles (same Sorting Layer, same order, same Z position if that matters), but they're sorting a bit late. Hard to describe so I recorded a GIF of what's going on: https://imgur.com/jtBNJrd
The scene seems set up similar to the MegaDad example scene. Is there anything I might be missing from the documentation? Transparency Sort Axis is also 0,1,0.
Hi Max. From the image I can't tell how your character is supposed to be sorting with what appears to be a rug to my eyes? It looks to me like they should have separate sorting orders? It may be easier to diagnose if you send me your project (exported as a Unity package is fine) with a description of what's going wrong. (email@example.com)
In the most recent version, I noticed that tile layers get displaced automatically on the Z axis. With no warning or visibility over this, it was pretty frustrating to have layers disappearing out of my camera's culling depth and not understand why. Does this really need to happen, and can we have an option to set the Z-offset if so?
I have everything working now which is awesome thanks for the great asset.
I do have a question for you. How can I make a tile walk on top and walk underneath at the same time? Do you have an example of this anywhere?
Hey there!! First of thank you for this amazing tool it works like a charm. I'm looking for a way to turn objects from the Tiled Editor into Unity Prefabs. I found some tutorials for your old Tiled2Unity, but i can't get them to work. I would be super thankful if you can give me some hints or tutorials how i get this to work.
Thanks in advance and best regards
David / nothingAD
Hi there. I'm working on a new version of SuperTiled2Unity that will make it easier to replace objects in your maps with prefabs. In the meantime you can try to write a custom importer (which is usually how I do such things). I don't have much documentation on this but this example on github should give an idea. In particular, `TrackCustomImporter.cs`, is the custom importer doing most of the work.
I keep getting an error that says: "The type or namespace name 'Tilemaps' does not exist in the namespace 'Unity Engine'. Are you missing an assembly reference?"
Hi there, Juan. Two things to look for here:
- Make sure you are using Unity 2018.2 or later
- Make sure that Tilemaps is included in your list of enabled built-in packages in your Package Manager (go to Windows -> Package Manager in Unity). It should be included by default with newer projects.
First off thank you very much for this amazing tool! I am having issues though,Top is old tiled2unity import bottom is SuperTiled2Unity. Why is there such a dramatic size difference between the two of them? Also do you have update documentation because the one on the site isn't very helpful.
When I set it to the same Pixels Per Unit as Tiled2Unity the size is the same however the level is separating all of the parts by a lot.
Hi there. Sorry for the lack of documentation. Your tilesets also have a Pixels Per Unit option on them and I'm guessing in your case they are still at the default setting of 100.
Fixing the PPU has fixed the scaling issue, however I am now having collider issues with the maps. After importing the maps I have to go back to the map and set the Edges Per Ellipse to 0 and apply it before it sets the colliders correctly. After doing so the EPE sets back to 6. Is there a way to resolve this issue so that I do not have to change the setting and apply it on each map after importing?
With my current setup I have a rather large map that is chunked out so that it only loads when you are near them. With the issues I am having above I cannot use this setup because of the issues with the colliders. I need this system so my game is playable via mobile devices.
Hi there. Why are you setting Edges Per Ellipse to 0? That shouldn't be allowed as we need some sensible number of edges in order to approximate elliptical colliders with polygonal shapes. If you have elliptical colliders in your tilesets that you don't want imported can not remove them in the Collision Editor in Tiled?
It’s the only way the colliders will show properly for me inside of unity after importing them. Unless I am doing something wrong.
I am having the same issue as this person and I cannot find a solution, no matter using T2U or ST2U. Basically, in Tiled it is seamless, but not so much in Unity. Any recommendations?
I finally figured it out! Once you import your map into Unity, click on the prefab. Change Layer/Object Sorting to Overhead Static, press apply, and it should be fixed!
thank you for sharing!
Is there any documentation for this at all? I followed a youtube tutorial to the letter but things are not working at all. I imported each of the required files, but even though I imported the .tsx , when I import the tileset image it references the .tsx doesn't read it at all. Keeps saying that the image is missing from the very original location that has nothing to do with unity.
Can you export your project in Unity as a Unity Package and send it to me (firstname.lastname@example.org)? I concede the documentation is light but I was also hoping it wouldn't be required. BTW, what youtube tutorial are you following?
Thanks for the response. I found out what my issue was and fixed it. Basically what the issue was, is that when it's imported into Unity, I have to have the exact same folder organization set up as what is on the desktop. Should have been a no brainer I guess but I kept not seeing it for a while. I like to keep things nice and tidy with my files, So for instance, I had my TileD tilesets seperate from where my map was on my folder layers, and then I had the tilesets images also saved in yet another folder that was further organized into subfolders and so forth. The key important factor was I needed to A) Make sure that wherever I save the TileD maps, that any of the tilesets and images need to be on the same level or within folders derived from the folder the map is in. Then in unity, if folders were used to seperate things, then they need to be made in unity and placed in the same manner so that it can locate it correctly.
The tutorial I used was:
But basically because I was using folders to organize things for TileD outside of unity, I just had to copy the file hiearchy in unity for it to find it correctly. Lets just say learning this I reorganized how I had everything organized so that I didn't have a long string of folders to get to the tile image I needed. Sorry if this response makes no sense, sometimes I have a hard time explaining what's going on in my head.
Super easy to use, and very helpful. Thanks for all the work!
I join itch.io to support an old game, and then I find this awesome tool and haven't even used it yet. I know I've been seeking something of a tile creator, this looks to be it! Thank you.
This is excellent, thank you.
Long time listener, first time caller.
Doing a great job!!! This thing is amazing!
Thank you so much for this amazing tool. With it, I was able to make the levels for my game Escape Hero VERY easily. I cannot overstate how helpful this tool was in my gamedev pipeline, well done!
Thank you for the supportive comment. Good luck with your game and let me know when you're ready to show it off. :)
Thank You for sharing this great tool!
Currently I’m bussy with non-gamedev stuff, but if I will have a chance to use SuperT2U in the future, I will sure make a donation.
Have a good day!