Unity – Project file structure

Learn here what project files & folders are important. What to keep, what to upload, what to delete…

In here you should have initialized the git repository and have the Unity recommended .gitignore. See: Unity – Version Control / Git

If you want to know how to structure your asset files & folders, check out: Unity – Assets file structure

The most important folders that you must never delete and always commit to git are:

  • Assets
  • Packages
  • ProjectSettings

1.- Assets #

What it is:
This is the heart of your project. Assets/ contains all the source content you create or import: scenes, scripts, prefabs, textures, models, audio, shaders, editor scripts, Resources, StreamingAssets, Plugins, Editor, and any subfolders you add.

Why it matters:
Everything Unity compiles into your game originates here. It’s the folder you must keep and share with teammates.

See: Unity – Assets file structure

Version control / git:
Yes: Use meaningful folder structure and metadata

Can I delete it?
No. This contains all the assets & most of the meaningful files of your project.

2.- Library #

What it is:
A huge cache folder. Unity stores imported and processed versions of your Assets here (imported meshes/textures, compiled shader variants, serialized editor data, and many caches). It speeds up the editor and build process. Each time you see a loading bar in unity, it’s because it’s either reading or writting stuff into this folder.

Why it matters:
Contains derived data that Unity can regenerate from Assets and Packages.

Version control / git:
No: It’s machine-specific and very large.

Can I delete it?
Yes, but only when needed. If you delete this folder, unity will need to re-import all the project, and this can last from 15 minutes to multiple hours. Delete it if you keep finding random unity editor errors that prevent you from building or playing.

3.- Logs #

What it is:
Contains runtime/editor logs for the current project session. On some platforms these are in the user profile (e.g., Editor.log), but Unity also stores some project-specific logs here.

Why it matters:
Help for debugging crashes, stack traces, import errors.

Version control / git:
No: logs disappear over time and are machine-specific.

Can I delete it?
Yes. If you don’t have any errors or history of changes to check.

4.- Packages #

What it is:
Manifest and package information managed by Unity’s Package Manager. Key files are manifest.json and packages-lock.json. This is where Unity stores references to official packages and any local or scoped packages.

Why it matters:
This folder determines which Unity packages (e.g., TextMeshPro, Render Pipelines, Editor Tools, custom packages…) the project uses.

See: Unity – Packages

Version control / git:
Yes: They ensure everyone uses the same packages & its versions.

Can I delete it?
No. This contains all the information related to packages that your project uses.

5.- ProjectSettings #

What it is:
Contains the serialized settings for the project: input manager, editor prefs, quality settings, tag & layer definitions, player settings, graphics settings, time manager, and more (each file is a YAML/text file).

Why it matters:
These files control how the project behaves and how the player is built. They should be shared so everyone uses the same project configuration.

See: Unity – Project Settings

Version control / git:
Yes: Commit this folder.

Can I delete it?
No. This contains all configuration files of your project. Render settings, input configuration, build settings, version information…

6.- Temp #

What it is:
Temporary files generated during the current editor session and build processes. These are transient working files. Unity deletes them when they are not needed and the folder disappears when the editor closes correctly.

Why it matters:
Used internally by Unity, not important to keep.

Version control / git:
No: Ignore it.

Can I delete it?
Not needed. Unity deletes it when closing the editor propperly.

7.- UserSettings #

What it is:
User-specific editor preferences tied to the project: editor layout, recently used scenes, per-user settings.

Why it matters:
Helps preserve each developer’s personal editor choices. Not needed for team consistency.

Version control / git:
No: It’s user-specific.

Can I delete it?
Yes. If the Unity layout broke or some preferences stopped working.

8.- Other Folders / Files #

  • .vs, .idea, .vscode: IDE/project files (Visual Studio, JetBrains Rider, VS Code). Generally ignore or commit selectively (workspace settings that help the team can be committed).
  • Builds or Build: manually created output folders where you store platform builds. These are usually large and not committed.
  • Recordings: Folder created by the recorder package, in here it stores any native videos or screenshots from the project. Don’t commit it.
  • .git, .gitattributes, .gitignore: git metadata and config. Commit .gitattributes and .gitignore but not the .git folder (it’s the repo itself).