Overview

Unity’s default import settings are designed for high-resolution art and will make pixel art look blurry and unprofessional. A specific set of import settings must be applied to every pixel art sprite to maintain crisp, pixel-perfect results. This page covers the critical import settings, sprite sheet slicing, animation setup, and performance optimisation strategies for pixel art games.


Setup

Critical import settings

When any pixel art sprite is selected in Unity’s Project window, the Inspector shows the Texture Import Settings. These must be configured:

SettingCorrect valueWrong defaultWhy
Texture TypeSprite (2D and UI)Default (Texture)Required for 2D sprite rendering
Filter ModePoint (no filter)BilinearPrevents pixel smoothing/blurring
CompressionNoneNormal QualityPrevents compression artefacts
Generate Mip MapsDisabledEnabledMip maps blur pixel art at distance
Pixels Per UnitMatch art resolution100Controls in-world scale

The single most important setting is Filter Mode: Point. Without it, Unity interpolates between pixels when scaling, which blurs the art entirely.

Pixels Per Unit determines how many sprite pixels equal one Unity unit:

  • For 16×16 sprites → set PPU to 16
  • For 32×32 sprites → set PPU to 32
  • Consistent PPU across all sprites ensures characters and tiles align correctly in the game world

Sprite sheet configuration

For animated characters, all animation frames are typically packed into a single sprite sheet PNG.

Slicing setup:

  1. Select the sprite sheet in Project window
  2. Set Sprite Mode to Multiple
  3. Open Sprite Editor
  4. Use Slice → By Cell Size and enter the frame dimensions (e.g. 32×32)
  5. Apply — Unity creates individual sprite entries for each frame
  6. Apply all import settings as above to the sheet itself

Naming convention: Unity names sliced sprites SheetName_0, SheetName_1, etc. Rename them clearly (e.g. player_walk_0 through player_walk_7) for maintainable animation setup.


Usage

Matching a tileset to the game resolution

For Tilemap-based pixel art, the important thing is not just “resolution” in the abstract. It is that the tileset, camera, and scene scale all agree on the same pixel grid.

Practical rule:

  • choose a consistent tile size such as 16x16 or 32x32
  • set Pixels Per Unit to match that tile size
  • keep the same logic across sprites that must align with the tilemap
  • then use unity-pixel-perfect-camera to present that grid cleanly on screen

If those values drift apart, tiles can look crisp in isolation but still align badly in the scene.

Animator Controller setup

Unity’s Animator Controller manages character animation states and transitions:

  1. Create an Animator Controller asset (right-click Project → Create → Animator Controller)
  2. Assign it to the Animator component on the character GameObject
  3. In the Animator window, create states for each animation (Idle, Walk, Jump, Attack)
  4. Drag animation clips (created from sprite sequences) into each state
  5. Create transitions between states with appropriate conditions (parameter checks)
  6. Add parameters (bool, float, trigger) that scripts will set to drive transitions

Common parameters for a 2D character:

ParameterTypeControls
IsMovingBoolIdle ↔ Walk transition
IsGroundedBoolJump entry/exit
SpeedFloatBlend tree for directional movement
HitTriggerOne-shot hit reaction
DieTriggerDeath animation

See unity-animator-scripting for C# code to drive these parameters.

Animation events

Unity animation events allow clips to trigger game logic at specific frames — useful for:

  • Footstep sounds (triggered on contact frames of walk cycle)
  • Attack hitbox activation (triggered on the impact frame)
  • Particle effects (triggered on specific frames)

Add animation events in the Animation window by clicking the event track at the desired frame.

Current Unity 2D workflow note

Unity’s newer 2D guidance places pixel-art workflows inside a broader package stack that often includes 2D lighting, 2D animation, and URP. That does not replace the core import rules on this page, but it does mean many current pixel-art projects are no longer just “sprites plus Animator” — they may also use 2D lights, skeletal animation, and Shader Graph-based effects where the style supports them. (Unity, How to make a 2D game: art, animation, and lighting for artists, see source-unity-2d-art-animation-lighting)


Asset organisation

Professional folder structure for a pixel art game:

Assets/
├── Art/
│   ├── Characters/
│   │   ├── Player/
│   │   │   ├── player_sheet.png          ← sprite sheet
│   │   │   └── PlayerAnimator.controller
│   │   └── Enemies/
│   ├── Environment/
│   │   ├── Tileset_Grass/
│   │   └── Tileset_Stone/
│   └── UI/
├── Animations/
│   └── Player/
│       ├── player_idle.anim
│       ├── player_walk.anim
│       └── player_jump.anim

Performance optimisation

Sprite Atlases

A Sprite Atlas combines multiple sprites into a single texture, reducing draw calls. Unity can render all sprites from one atlas in a single draw call instead of one per sprite.

Create a Sprite Atlas (right-click Project → Create → 2D → Sprite Atlas) and add sprites or folders to it. Unity automatically packs them at build time.

Grouping strategy:

  • Character atlas — all frames for a given character
  • Environment atlas — tiles from a single tileset
  • UI atlas — all interface elements

Other optimisation settings

TechniqueMethodBenefit
Draw call batchingUse Sprite Atlas; ensure sprites share materialReduces GPU draw calls
Animation cullingSet Animator culling mode to “Based on Renderers”Disables off-screen animation updates
Texture compressionOnly compress non-pixel-art UI; use None for spritesAvoids artefacts on low-colour art

Gotchas

  • Bilinear/Trilinear filter mode — the most common mistake in student projects; always verify Point is set after importing
  • Wrong Pixels Per Unit — characters and tiles that misalign in the scene usually have mismatched PPU settings
  • Mip maps enabled — sprites that look fine up close but blur when the camera zooms out have mip maps accidentally enabled
  • Sprite Mode: Single on a sprite sheet — if the Animator shows only one frame, the Sprite Mode was not set to Multiple before slicing
  • Compression artefacts — subtle colour banding or blurring visible in the exported build but not the editor; set Compression to None for pixel art sprites