Unity2D: Stretching Where Alpha Should Be

I’m working on this game in 2D where everything you see I drew in ballpoint pen. I photographed the results and cleaned it up in Photoshop so that some bits are transparent. That’s all fine and dandy when using the Sprites-Default shader which looks like this:


It works but I wanted to make use of real-time lighting on some assets to help give it a little extra depth. I switched the material to the Default-Diffuse shader and ended up with this problem:


Everything looked great but then I noticed all of the stretching between the wood and curtains.

I’m thinking to just make the curtains separate in Photoshop and place them on back on top of the wood in Unity so that they appear seamless. Problem is, I’m worried that this could get very tedious if I were to make something that is much more complex. Is there a better way?

This looks like filling of transparent areas of texture (i.e. areas with alpha=0). Unity does that to get better mipmaps, i.e. to avoid black lines on edges on lower mipmaps.

Your problem is that these pixels area showing for some reason. Did you change shader or something like that? Did you use Phong shader, in which case alpha is interpreted as reflectiveness of the surface instead of alpha?