Sprite import settings with Point filtering and a before and after scale comparison
Sprite import settings with Point filtering and a before and after scale comparison

First check: the sprite import settings

Select the sprite and set Filter Mode to Point (no filter). The default Bilinear interpolates between pixels and smudges pixel art. On the same screen, set Compression to None and disable Mip Maps (rarely needed in 2D).

Still blurry at the right size? check scaling

A Pixels Per Unit (PPU) mismatch stretches sprites by fractional amounts. For a 16x16 character use PPU 16 and keep Transform scale at whole numbers (1, 2, 3...). Snap positions to integers as well to stop jitter.

// Forcing it from code
var importer = (TextureImporter)AssetImporter.GetAtPath("Assets/art/hero.png");
importer.filterMode = FilterMode.Point;
importer.textureCompression = TextureImporterCompression.Uncompressed;
importer.mipmapEnabled = false;
importer.SaveAndReimport();

UI and tiling

UI images can blur with Canvas Scaler scaling; match the reference resolution to pixel sizes. Tile seams are solved with Sprite Atlas padding.

Expected result and next step

Pixel edges surviving zoom means done. If colors smear, re-check compression, then verify draw calls in the Profiler guide.

// hero.png importer state after the fix
filterMode: Point(no filter)
compression: None   mipMaps: 0
Verification scope

Official documentation review

Verified

Reviewed the article's code and procedure against official Unity documentation and marked it ready for publication. This is not a claim of an independent Unity project or device reproduction; version- or device-specific reports will be checked in that environment as follow-up.

Official documentation checkedTexture import settings ↗