Sprite Shape not working (need help/suggestions!)

I’m working on a 2D platformer and have already built a bunch of tile-based levels, but now I want to leverage Sprite Shape to get more organic/curvy landscapes for “special” areas.

The problem is, I seem to have encountered a major bug with Sprite Shape in that won’t allow me to use any of the sprites in my current sprite sheet.

I’ve already:

  1. Created a Sprite Shape profile and assigned it one of the “terrain” sprites from my sheet
  2. Created an “Open Sprite Shape” game object and assigned it the profile in step #1

Everything looks fine and dandy in the editor–the Sprite Shape appears as it should and I’m able to edit the spline without any issues–but as soon as I launch the game the Sprite Shape goes invisible and I’m greeted with this nasty little error message in the console:

ArgumentException: tileset-1-separated_1 is packed with Tight packing or mesh type set to Tight. Please check input sprites

Seems simple, right? Based on that error message all I have to do is change my sprite sheet’s packing mode to Full Rect instead of Tight.

… except I already have changed it from Tight to Full Rect, and the problem still hasn’t been resolved.

But wait, it gets stranger:
Just for kicks I decided to import an EXACT COPY of the sprite sheet I’m using and chose Full Rect as the default import setting instead of Tight. I gave it the exact same settings as the original sheet I’d already been using, tried assigning one of its sprites to the Sprite Shape profile I created above, and… it worked! No error message, nothing. The Sprite Shape was there when I clicked play.

How is it possible that one sprite sheet works with Sprite Shape and one doesn’t, when they’re literally the exact same image/PNG file and I’ve cross-referenced them to ensure that they share the exact same settings? The only difference between the two is that the original was set to Tight when I first imported it, whereas I made sure to set the copy to Full Rect right off the bat.

Is it possible that if you choose Tight first (rather than Full Rect), then that setting somehow remains in place “behind the scenes” even if you later switch over to Full Rect? Because clearly, Sprite Shape seems to think that the original is still set to Tight when it is in fact NOT. Or is something else going on here?

Here are the settings for my original sprite sheet:

And these are the settings for the exact copy:

Do you see any difference between the two? Because I sure don’t–but apparently Sprite Shape does!

I would love to hear if anyone else has encountered this before, and if there’s some sort of fix. Since the exact copy works I understand that I could just switch over to it and ditch the original, but also understand that that would result in a whole lot of extra work since I’ve already used loads of sprites from the original sheet. It’d be fantastic if I could somehow resolve this so that I could just continue using my original sheet.

Well, Unity DOES record data “behind the scenes” for you, through metadata files. A simple (-enough) way you can try testing this:

1) Right-click the sprite sheet file and select “Show in Explorer”.

2) Close the Editor once you have the folder open.

3) Find a file with the same name, but a “.meta” extension.

4) Delete that metadata file. (I’d say make a backup of that file to another location just in case, as well)

5) Re-open Unity.

There will be settings that need to be rebuilt at this point for that specific file, but this should give you a blank slate without any unexpected or potentially erroneous data to start from.

Edit: You could also just try editing the metadata file. They’re human-readable.

If anyone else ever encounters this problem, I finally figured out what was happening:

At some point in the past I had created a Sprite Atlas containing a reference to my tilesheet. I did this back when my tilesheet’s Mesh Type was set to “Tight” rather than “Full Rect.” Although I never actually used the Sprite Atlas (it was merely sitting there with the rest of my assets), that is what was causing the problem!

As soon as I deleted the Sprite Atlas asset, my original tilesheet finally became compatible with Sprite Shape and was no longer incorrectly seen as having a “Tight” mesh type. For whatever reason, the Sprite Atlas file is what Sprite Shape was looking at… even though I hadn’t even been using it in any of my levels!

Short version: Sprite Atlas was the culprit. If you have a Sprite Atlas asset referencing your tilesheet, delete it if you aren’t using it. If you are using Sprite Atlas, deleting the asset file and re-creating it may solve the problem (I can’t verify this myself).

Thanks so much, I finally found the solution to the same problems that I faced.,Thanks so much, I faced the same problems, and finally I found the solution.