I’m using SpriteTile, and this seems to be a common problem no matter what plugin, texture type, or any setting you use.
It just seems to be a problem in Unity, period.
I fixed it in SpriteTile, by using tiles that are actually pixels larger than they’re suppose to be. So while the tiles are 40x40, the texture is 42x42.
The tiles still end up being 40x40, and all that is ever visible is 40x40. Yet whenever these stupid lines occur thanks to Unity’s problematic 2D rendering, the extra pixels compensate and show up as they’re suppose to because the edges are the exact same pixel as the adjacent pixel.
A lot of the 2D problems that people have in Unity is not because of their settings, but because of Unity being a 3D engine with less-than-perfect 2D functionality. The engine just isn’t coded correctly to compensate for a lot of 2D problems with which pixels should be drawn at what coordinates. Not that you can’t fix this in your game in many different ways, but that it is not the fault of the user, it is the fault of the engine.
SpriteTile fixes this for me because even though tiles are the size you want them to be, you’re allowed to have a Tile’s sprite be larger than the tile, but the overlap is correct so the tiles display as they should (only 40x40 pixels ever displayed, as the extra 2x2 is always covered up by the next tile.) I also use trillinear filtering for one of my steps because even though it should be Point, it simply refuses to display correctly for the most part.
IMO, this (and nearly identical issues) is the worst and most problematic quirk in Unity, and if they care for 2D functionality, it should certainly be the first thing they fix in their next 2D-based update. This can even occur in pixel-perfect rendering with integer (rather than float) camera positioning. It’s just silly, and the only reason I do not berate the devs for it is because Unity is a 3D engine, and was never intended to be a 2D one until recently. So they have time, IMO, to justify problems like this taking time to fix.