Picture a Friday at 4:45 p.m. An environment artist drops a gorgeous rock formation into the shared folder. It is a 400,000-triangle sculpt with four 4K texture sets, an unapplied scale, and a name like “rock_final_FINAL_v3.” Someone on the engineering side imports it before the weekend. By Monday morning, the build is two hundred megabytes heavier, the level takes eleven seconds longer to load, and nobody can say which asset did it.

Nobody on that team is bad at their job. They lack a pipeline. A Unity asset pipeline is the set of rules, folders, settings, and automation that carries art from a DCC tool like Blender, Maya, or Substance to a shipped build without surprises. This guide explains how to design one, discipline by discipline, so that what artists make is already what the engine needs.

What an Asset Pipeline Actually Does

A pipeline answers four questions for every piece of content. Where does it live? What is it called? What settings does it import with? Who is allowed to change it, and how do those changes reach everyone else? A strong game art pipeline writes the answers down and enforces them, so a new artist can contribute on their first day. When the answers live in people’s heads, the project slows down with every hire, and Unity game assets arrive in whatever state their author felt like.

For a studio, the payoff is concrete. Good pipelines reduce rework, because assets arrive correct the first time. They protect performance, because budgets get checked at import rather than at the end. And they make outsourcing viable, because an external team can follow a written spec instead of guessing. That last point matters for any studio working with an external game art partner, since the handoff spec is the contract that determines how much cleanup the receiving team does.

Start With the Budget, Not the Brush

The cheapest time to fix an asset is before it exists. Every production should write an asset budget during pre-production and share it with every artist, in numbers they can check.

Asset Type Budget Items to Define
Hero character Triangle count, bone count, texture sets and resolution, blend shape count
Props Triangle range by size class, texture resolution by size class, shared material rules
Environment pieces Triangle range, modular grid size, atlas or trim sheet usage
VFX Particle count ceiling, texture sheet resolution, overdraw limits
UI Atlas size, sprite resolution, compression format
Audio Sample rate, mono or stereo, load type by length

 The exact numbers depend on the target platform. A PC and console project and a mobile project have different ceilings, and mobile projects in particular should set them against the lowest supported device, as covered in our guide to Unity mobile optimization. What matters is that the number exists, sits in a document, and is checked automatically wherever possible. Those numbers are what turn a folder of files into engine-ready assets that drop into a scene without a cleanup pass.

What Can Actually Be Outsourced?

Game art outsourcing covers a wide range of disciplines: 2D and 3D character design, environment art, UI and UX design, concept art, marketing and key art, animation, and technical art like rigging and shader work. A studio can outsource a single asset category or run an entire art pipeline through an external partner, depending on internal capacity and budget.

Call To Action

Folder Structure and Naming: Boring and Essential

Naming is the cheapest form of automation. When names carry meaning, scripts, search, and tired humans can all rely on them.

A workable convention uses a prefix for type, a body for the asset, and a suffix for variant or texture channel:

  • Prefixes: `SM_` static mesh, `SK_` skeletal mesh, `T_` texture, `M_` material, `A_` animation, `FX_` effect, `UI_` interface sprite.
  • Texture suffixes: `_BC` base color, `_N` normal, `_ORM` occlusion, roughness, metallic packed, `_E` emissive.
  • Variants and LODs: `_LOD0`, `_LOD1`, `_LOD2`, and a version number only where versioning is intentional.

Unity does not enforce any of this, so the team has to. Folder structure should follow the same logic. Two common schemes exist: organize by asset type, or organize by feature or level. Large teams with many reusable assets usually prefer feature-based folders because a designer working on the desert level finds everything for the desert level in one place. Whichever scheme you choose, write it down, commit it, and reject imports that break it.

Three rules prevent the most common folder disasters:

  1. Never rename or move assets outside Unity. Unity tracks assets through the `.meta` file that sits beside each one. Moving a file in the operating system’s file browser can sever the GUID link and break every reference.
  2. Commit the `.meta` files. They are part of the asset. A team that leaves them out of version control gets missing references on every other machine.
  3. Keep source files out of the Assets folder. Large `.blend`, `.max`, `.psd`, and `.spp` files should live in a separate source repository, with only the exported FBX or texture going into Unity. Otherwise, Unity wastes time importing files it should never see.

The 3D Model Handoff

Models are where most pipeline bugs originate. A clean handoff checklist for modelers and technical artists covers the following.

Before export from the DCC tool:

  • Apply scale and rotation so the object imports at its real size with a clean transform. A model that arrives at 100 times scale or rotated 90 degrees is the most repeated bug in the industry.
  • Set the pivot where the object should rotate or attach.
  • Delete construction history, hidden geometry, and unused vertices.
  • Triangulate consistently or confirm that the exporter does it the same way every time.
  • Check normals and smoothing groups. Inverted normals look fine in a viewport and render black in the engine.
  • Name the object and its materials according to the convention.

Import settings in Unity:

Setting Guidance
Scale Factor / Convert Units Match the DCC tool’s unit scale, so one unit means the same thing everywhere
Read/Write Off unless a script needs runtime access, since enabling it keeps a second copy of the mesh in memory
Mesh Compression Reduces disk size, though it does not change runtime memory, so use it to cut build size
Optimize Mesh On, for better GPU vertex cache use
Blend Shapes, Normals, Tangents Disable if the mesh does not use them, since every channel costs memory
Generate Lightmap UVs On only for static objects that need baked lighting
Rig None for static props, Humanoid or Generic for characters

 Level of detail deserves a rule of its own. Name LOD meshes with the `_LOD0`, `_LOD1` suffixes in the same FBX file, and Unity will build a LOD Group automatically on import. The cost of generating LODs is small compared to the cost of forgetting them in a scene with hundreds of props.

The Texture Handoff

Textures usually account for the largest share of memory and build size, so asset optimization Unity teams do at import repays the most effort here.

  • Size in powers of two. Dimensions of 256, 512, 1024, and 2048 work with every compression format. Some formats, PVRTC among them, require square power-of-two textures, and non-conforming sizes can fail to compress or import with padding.
  • Pack channels. Occlusion, roughness, and metallic combine into one texture’s separate channels instead of three files. One sample fetch replaces three, which saves memory and shader time.
  • Use trim sheets and atlases. A single trim sheet shared across a modular kit can replace dozens of unique textures. Sprite Atlases do the equivalent for 2D and UI.
  • Set compression by platform. ASTC is Unity’s recommendation for modern iOS and Android. PVRTC remains a fallback for iPhones from the A7 era and earlier, and ETC2 for Android devices from before 2016. Desktop projects use BC formats instead.
  • Cap Max Size by importance. Unity’s guidance is to use the minimum settings that produce visually acceptable results, and Max Size is non-destructive, so artists can test lower values freely.
  • Turn off Read/Write. Left on, it keeps a CPU-accessible copy alongside the GPU copy and doubles the texture’s footprint.
  • Disable mipmaps for UI and 2D sprites. Textures that render at a constant on-screen size do not need them. World textures should keep mipmaps.
  • Mark normal maps as normal maps. Unity applies the correct compression and decoding only if the texture type is set properly.
  • Set sRGB correctly. Color textures use it, while data textures such as normals, masks, and packed maps do not. A wrong flag shows up as washed-out or overly dark materials that no lighting tweak will fix.

The size of the prize is large. Unity’s own asset guidance illustrates that a texture left uncompressed can occupy almost 26 times the memory of a well-compressed version with little visible difference, which is why compression settings are the first stop in any build-size investigation.

The Animation and Rig Handoff

Animation files are fragile because they depend on a rig, and a rig change can invalidate every clip made with it.

  • Lock the skeleton early. Once animators start, changing bone names, hierarchy, or orientation breaks retargeting and existing clips. Treat the rig as versioned and announce changes.
  • Choose Humanoid or Generic deliberately. Humanoid enables retargeting across characters that share a common bone mapping, which is valuable for large rosters and for reusing mocap data. Generic suits creatures and unusual anatomy.
  • Separate animation from the mesh. Many teams export the character model once and animations as separate files containing only the skeleton and keys, which keeps the model asset small and avoids duplicate mesh data.
  • Control compression. Unity offers keyframe reduction and compression settings per clip. Tune them against visual tolerance, since mocap-derived curves are dense and can bloat a build.
  • Set loop and root motion flags on import. Loop Time, Loop Pose, and root motion settings belong in the import settings and are easy to forget until a walk cycle pops at the seam.

For characters, the rig and the skinning settings inside the project matter as much as the file. Unity’s default quality settings cap skin weights at four bones per vertex, so a character skinned with more influences in the DCC tool will deform differently in the engine. Test the in-engine result before animators build on it. Our 3D animation pipeline checks rigs in-engine at the first milestone for exactly this reason.

Audio, VFX, and UI

The smaller disciplines cause outsized trouble because nobody owns them.

Audio. Load type is the setting that matters. Short, frequent effects can be decompressed on load or kept compressed in memory. Long music and ambience should stream from disk, since loading a three-minute track fully into memory is a common cause of mobile crashes. Use mono for anything that does not need stereo, which halves its size, and set a sensible sample rate instead of shipping every clip at the highest one.

VFX. Particle systems are cheap to author and expensive to render. Set ceilings on particle counts, texture sheet sizes, and overdraw, and test every effect on the lowest supported device. Share materials across effects so they batch.

UI. Pack sprites into atlases by screen or feature so a screen loads one texture and draws in one batch. Keep source art at the target resolution plus a small safety margin, since a 4K icon on a phone UI wastes memory.

Automation: Let Unity Enforce the Rules

Rules that depend on memory fail. Unity includes tools to turn conventions into code.

  • Presets. Save a set of import settings, then assign it to a folder so every new texture or model in that folder imports correctly with no one touching a checkbox.
  • AssetPostprocessor. An editor script that runs on every import. Use it to apply settings by folder or name pattern, and to log or reject assets that break the budget, such as a mesh over the triangle limit or a texture above the max size.
  • Custom validators. A menu command or a pre-commit script that scans the project for missing references, oversize textures, uncompressed audio, and naming violations.
  • Build reports. Unity’s build report lists the largest assets in a build. Review it after every milestone build and treat the top ten as a standing agenda item.
  • Continuous integration. A server that builds on every commit, runs validators, and fails loudly makes pipeline breakage a same-day problem instead of a month-end surprise.

A small amount of postprocessor code removes a large amount of review work. A rule that says “every texture in a UI folder imports with mipmaps off and a sprite atlas assignment” cannot be forgotten once it is code.

Version Control for Binary Assets

Unity projects mix text and large binary files, and the version control setup should reflect that.

  • Set Asset Serialization to Force Text so scenes and prefabs can be diffed and merged.
  • Use Git LFS or Perforce for large binary assets. Standard Git handles big binaries poorly and slows down for the whole team over time.
  • Use Smart Merge or its equivalent for scene and prefab conflicts, and keep scenes small and split by responsibility so conflicts stay rare.
  • Lock binary files where merging is impossible. Models and textures cannot be merged, so a locking workflow prevents two artists from overwriting each other’s work.
  • Ignore the right folders. Library, Temp, and Logs are generated and should never be committed.

Delivering Content: Build Size and Addressables

Pipelines continue after import. A shipped game has to deliver its content to the player efficiently.

The Addressable Asset System loads content by address or alias, asynchronously, from local storage or from a remote content delivery network. For large or growing projects, it solves several problems at once: smaller initial downloads, on-demand levels and skins, patch delivery without a full store update, and cleaner memory management through reference counting. Mobile projects in particular benefit, since app store size limits and player patience both reward a small first install.

Addressables need planning, because the grouping of assets into bundles decides download size, duplication, and load behavior. Group assets that load together, avoid sharing large dependencies across many groups, and test update flows on a real device before launch. Moving a project to Addressables late is a significant refactor, which is why the decision belongs in pre-production.

Cobweb Games’ Approach to the Unity Asset Pipeline

Pipeline design starts in the first week of a project. Cobweb Games writes the asset budget, naming convention, folder structure, and import presets before production art begins, then wires them into editor scripts so the engine enforces them. Studios working with us on Unity game development get a pipeline that is documented, automated, and tested against real devices, which keeps art flowing into the build without the Monday morning surprises.

Where a project includes outsourced art, the same documentation doubles as a handoff spec. Our 3D game modeling and 3D environment design teams deliver assets built to the project’s budget and naming rules, ready to import without rework.

Common Asset Pipeline Mistakes

Writing no budget. Without numbers, every asset is a negotiation and every overrun is a surprise.

Leaving import settings to individual judgment. Presets and postprocessors replace hope with enforcement.

Moving files outside Unity. It breaks GUID links and creates missing references that are painful to trace.

Ignoring the build report. The largest assets are almost always a handful of oversize textures or audio files.

Leaving Read/Write enabled. It silently doubles memory for textures and meshes.

Changing the rig after animation starts. One bone rename can invalidate weeks of clips.

Skipping version control for binaries. Plain Git slows down and merges nothing useful for large art files.

Deciding on Addressables late. Restructuring content delivery mid-production is expensive.

Frequently Asked Questions

What is a Unity asset pipeline?

It is the set of conventions, folder structures, import settings, and automation that moves art from creation tools into a Unity build in a consistent, engine-ready state. Good pipelines cut rework, protect performance, and make outsourcing practical.

Which file format should I export 3D models in for Unity?

FBX is the most widely used format for models and animation, and it imports with full support for meshes, rigs, and animation clips. Unity also imports glTF through packages and several native DCC formats, though FBX remains the standard choice for production pipelines.

What are the most important texture import settings for performance?

Compression format, Max Size, Read/Write, and mipmaps. Use ASTC on modern mobile, cap sizes to what the screen can show, turn off Read/Write, and disable mipmaps for UI and 2D sprites.

How do I stop artists importing oversize assets?

Use an AssetPostprocessor script that checks each import against the budget and warns or rejects violations, combined with folder-level Presets for default settings and a build report review at every milestone.

Do I need Addressables for my game?

Small games with a single level often do not. Projects with large content, live updates, many skins, or strict download size limits benefit significantly, and the decision is easier to make early than to retrofit.

What should be committed to version control in a Unity project?

The Assets, Packages, and ProjectSettings folders, including every `.meta` file, with large binaries in Git LFS or Perforce. Library, Temp, and Logs are generated and should be ignored.