When you create a Unity project, Unity generates a folder containing a series of files and subfolders. Having a clear understanding of this structure is incredibly helpful when building out an organized folder system for your project as a whole.
Unity Project Folder
Within the Unity Editor, you’ll only see certain folders and files that are relevant to development. However, if you open the project folder in Windows Explorer (or Finder on macOS), you’ll notice additional folders and files. Some of these are required for the project to run, while others are used internally by the Unity Editor.

Exploring the Unity project folder, you will find some C# project (.csproj) files along with a solution (.sln) file, along with a series of folders. The folders fall into categories: editor folders and project folders.
Editor Folders
Editor folders contain files and data required by the Unity Editor. They can usually be ignored (and even excluded from version control), since Unity will recreate them whenever the project is opened.
UserSettings
The UserSettings
is an editor folder that stores user-specific editor preferences for the project, like window layouts or editor behavior.
Library
The Library
folder can be thought of as the cache for the Unity editor. This folder is rebuilt when Unity opens the project, to ensure all assets have been imported and re-imports any missing or updated assets.
Logs
The Logs
folder, as the name implies, stores Unity editor log files, which are generated during debugging errors or editor crashes. This folder is not required by the project; however, Unity will regenerate the folder as needed.
Project Folders
Project folders contain the assets and settings required for the game itself. These must not be deleted or manually modified outside of Unity, as doing so can break the project.
ProjectSettings
The ProjectSettings
folder contains all project configuration settings, such as build settings, input settings, tags, and layers. While this folder is not directly accessed, it is critical for project setup, and deleting it will reset the project to the default settings.
Packages
The Packages
folder is located in the project’s root folder and contains a manifest.json
file that maintains dependencies between packages. Essentially, the mainfest.json
file tells the Unity editor which packages to load into the project by default. In the Unity editor, the individual folders for the packages will be displayed instead of the JSON file.
Remove Unused Packages
It is a good idea to always remove any packages that will not be used in the project, to keep the project lightweight.
Assets
The Assets
folder is the main folder for all assets in the project. By default, the Asset folder includes a Scene folder for organizing your scenes. It is in the Assets folder where we will create all other folders and establish our project folder structure.
Special Asset Folders
While the names of the folders in the Assets
folder should follow a proper project folder structure, but their names can generally be whatever you choose, except for a few reserved names that Unity uses to identify specific types of assets.
These special folders include:
Editor
The Assets/Editor
folder contains editor scripts that run in the editor and not at runtime. The Editor folder must be inside the Assets folder or any sub-folder located within the Assets folder. Multiple Editor folders can exist within a project; however, because the Editor folder contains scripts, it is commonly located in Assets/Scripts/Editor
.
Default Resources
The Assets/Editor Default Resources
folder contains all the resources (asset files) for the Editor scripts. There can only be one Editor Default Resource folder, and it must be placed directly inside the Asset folder.
Gizmos
The Assets/Gizmos
folder contains custom Gizmo icons. All custom gizmos’ image files must be placed in the Gizmos folder, which must be directly inside the Assets folder.
What is a Gizmo
Gizmos are visual aids that are drawn in the scene view to represent game objects that have no graphical elements and would otherwise be invisible, such as cameras and lights.
Resources
The Assets/Resources
folder contains assets that can be loaded on-demand from a script instead of creating an instance. The assets located in the Resources folder can then be called in a script using the Resources.Load
function. The Resources folder can be placed within sub-folders inside the Asset folder, and multiple Resource folders can be created. However, it is common to have a single Resource folder directly in the Asset folder and to organize resource assets into sub-folders. If you are using a sub-folder inside the Resource folder, be sure to declare the folder name when using the Resource.Load
function.
Use Resources with Caution
When Unity creates a build of a project, it automatically checks which assets are required for the build, thereby reducing the build size in comparison to the Unity project file. However, all assets in the Resources folder are used in the build, whether they are being used or not. This could lead to larger build files.
Streaming Assets
The Assets/StreamingAssets
folder contains any assets in their original format and is streamed into Unity instead of being part of the Unity build. One example of a streaming asset would be a video file from a file system.