Skip to content

Instantly share code, notes, and snippets.

@NicolasChicunque
Created May 31, 2026 05:10
Show Gist options
  • Select an option

  • Save NicolasChicunque/1c4f02204d3b813ad7ff840f218deca2 to your computer and use it in GitHub Desktop.

Select an option

Save NicolasChicunque/1c4f02204d3b813ad7ff840f218deca2 to your computer and use it in GitHub Desktop.
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using static System.IO.Directory;
using static System.IO.Path;
using static UnityEditor.AssetDatabase;
public class ProjectFoldersCreator
{
[MenuItem("Genial Studios/Create Default Folders")]
static void CreateDefaultFolders()
{
List<string> directoriesNames = new() { "Animations", "Audios", "Fonts", "Inputs", "Materials", "Models", "Plugins", "Prefabs", "Scenes", "ScriptableObjects", "Shaders", "Scripts", "Textures", "URP" };
string projectPath = Combine(Application.dataPath, "_Project");
CreateDirectoriesFromList(projectPath, directoriesNames);
directoriesNames = new() { "Editor", "Serializables", "UI" };
string scriptsPath = Combine(projectPath, "Scripts");
CreateDirectoriesFromList(scriptsPath, directoriesNames);
directoriesNames = new() { "Test" };
string scenesPath = Combine(projectPath, "Scenes");
CreateDirectoriesFromList(scenesPath, directoriesNames);
Refresh();
}
static void CreateDirectoriesFromList(string root, List<string> directoriesNames)
{
for (int i = 0; i < directoriesNames.Count; i++)
{
string directoryPath = Combine(root, directoriesNames[i]);
if (Exists(directoryPath)) continue;
CreateDirectory(directoryPath);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment