
Unity Z-Fighting Bug: Causes of Flickering Geometry and Reliable Solutions
February 15, 2026
Unity Composite Collider Bug: Holes in Generated Geometry (Causes and Fixes)
February 16, 2026You build your 2D game. Everything looks fine in the Scene view. But when you move the camera or scale the resolution, thin lines appear between tiles. Small gaps. Flickering seams between sprites that should be perfectly connected.
This is commonly blamed on a “Sprite Atlas bug.” In reality, it is usually caused by padding, filtering, or texture sampling behavior.
Here is how to diagnose and fix it properly.
What Causes Gaps Between Sprites?
When sprites are packed into a Sprite Atlas, Unity stores them inside a single texture. During rendering, texture filtering may sample pixels slightly outside the sprite’s defined area.
If there is no padding between sprites, neighboring pixels can bleed into each other. That creates visible lines.
Step 1: Increase Sprite Atlas Padding
Select your Sprite Atlas and check:
- Padding value
If padding is set to 2 or less, try increasing it to 4 or even 8.
Padding adds empty pixels around each sprite, preventing texture bleeding.
Step 2: Disable Texture Compression (Test)
Compression can distort edge pixels slightly.
In your texture import settings:
- Set Compression to None (for testing)
- Increase Max Size if needed
If gaps disappear, compression was altering border pixels.
Step 3: Set Filter Mode to Point (For Pixel Art)
If you are making a pixel art game, filtering is often the main issue.
Check texture settings:
- Filter Mode: Point (No Filter)
- Compression: None
- Generate Mip Maps: Disabled
Bilinear or Trilinear filtering blends neighboring pixels, which creates visible seams.
Step 4: Disable Mip Maps
Mipmaps are useful for 3D textures, but they often cause 2D tile gaps.
Make sure:
- Generate Mip Maps is disabled
Mipmaps blend texture levels, which can introduce edge artifacts.
Step 5: Check Camera Orthographic Size
Sub-pixel camera movement can cause texture sampling artifacts.
If your camera position uses floating-point values like 3.12457, sprite edges may not align perfectly to pixel boundaries.
For pixel-perfect games:
- Use whole number camera positions
- Use Pixel Perfect Camera component
Step 6: Check Tilemap Settings
If using Tilemap, verify:
- Tile Anchor values
- Cell size consistency
- Correct sprite pivot points
Incorrect pivots can create tiny visible gaps between tiles.
Step 7: Enable “Tight Packing” Carefully
Tight packing can sometimes increase bleeding because shapes are irregular.
Test switching between:
- Tight Packing enabled
- Tight Packing disabled
In grid-based games, disabling tight packing often reduces edge artifacts.
Step 8: Add Extrude Edges
Unity provides an “Extrude Edges” option in sprite import settings.
This duplicates border pixels outward, reducing bleeding when filtering occurs.
Try setting Extrude Edges to 1 or 2.
Common Scenario: Gaps Only Appear in Build
If everything looks fine in the Editor but gaps appear in the build, check:
- Platform-specific compression settings
- Resolution scaling
- Different texture quality settings
Mobile builds often use stronger compression by default.
Quick Debug Checklist
- Increase Sprite Atlas padding
- Disable mipmaps
- Set Filter Mode to Point (for pixel art)
- Disable compression (test)
- Enable Extrude Edges
- Align camera to pixel grid
Is This a Unity Engine Bug?
No. This behavior comes from how GPUs sample textures. When filtering blends pixels near edges, artifacts appear if padding is insufficient.
Every game engine that uses atlases can experience this.
Final Thoughts
Visible gaps between sprites are almost always caused by texture sampling and insufficient padding.
The most reliable fixes are increasing atlas padding, disabling mipmaps, and using proper filtering settings.
Once your texture import settings are correct, tile seams and sprite gaps disappear permanently.









