Unity+ (Unity File & Folder Creator)
🚀 Unity+ is a powerful VS Code extension designed to accelerate your Unity development workflow. It allows you to generate C# scripts with smart templates, create complex folder structures, and manage namespaces automatically—all without leaving VS Code.
Stop writing boilerplate code and manually creating folders. Let Unity+ handle the busy work.
🔥 Key Features
- 📂 Smart Folder Structures: Create a complete "Starter Template" (Scripts, Models, Prefabs, etc.) or custom folder trees in a single click.
- 📝 Advanced File Templates: Includes ready-to-use templates for
MonoBehaviour, ScriptableObject, Singleton, Interface, Enum, and EditorWindow.
- 🧠 Automatic Namespace Resolution: Automatically calculates the correct namespace based on your folder path (e.g.,
Assets/Scripts/Managers → MyGame.Managers) and wraps your code accordingly.
- ⚙️ Fully Customizable: Add your own custom C# templates and folder structures via VS Code Settings (
settings.json).
- 🛡️ Safety First: Built-in validation prevents invalid characters, empty names, and accidental file overwrites.
- 📦 Assembly Definitions: Option to automatically generate
.asmdef files for new folder structures.
- 📍 Flexible Access: Use it via the Right-Click Context Menu or the Command Palette (
Ctrl+Shift+P).
🚀 How to Use
1. Start the Command
- Method A (Context Menu): Right-click on any folder in the VS Code Explorer and select
Unity+: Create File/Folder.
- Method B (Command Palette): Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac) and type Unity+.
2. Select Type
Choose whether you want to create a New File or a New Folder.
3. Choose Template
- For Files: Select from standard templates (e.g., MonoBehaviour, Singleton) or your custom templates.
- For Folders: Select "Empty Folder", "Starter Template", or your defined structures.
4. Name It
Enter the name for your script or folder. The extension will handle the rest!
⚙️ Extension Settings
You can configure Unity+ to fit your specific coding style. Go to Settings (Ctrl+,) and search for Unity+.
| Setting ID |
Default |
Description |
unityPlus.useNamespace |
true |
Automatically generates namespaces based on the folder path. |
unityPlus.rootNamespace |
"MyGame" |
The root name to replace Assets/Scripts with (e.g., MyGame). |
unityPlus.createAsmdef |
false |
Forces the creation of .asmdef files for folder templates that support it. |
🎨 Customization (Advanced)
The real power of Unity+ lies in its customization. You can define your own templates in your settings.json.
1. Custom File Templates
Add unityPlus.fileTemplates to your settings.
Placeholders:
{ClassName}: Replaced by the file name.
{Namespace}: Replaced by the calculated namespace.
Example:
"unityPlus.fileTemplates": {
"NetworkManager": {
"description": "Basic Network Manager Setup",
"content": "using UnityEngine;\n\npublic class {ClassName} : MonoBehaviour\n{\n void Start() { Debug.Log(\"Network Started\"); }\n}"
},
"PlainClass": {
"description": "Empty C# Class",
"content": "public class {ClassName}\n{\n // TODO: Add logic\n}"
}
}
2. Custom Folder Templates
Add unityPlus.folderTemplates to your settings. You can use / to create nested folders (e.g., Prefabs/UI).
Example:
"unityPlus.folderTemplates": {
"UI System": {
"description": "Complete UI Folder Structure",
"structure": [
"Scripts",
"Prefabs/Buttons",
"Prefabs/Panels",
"Sprites/Icons",
"Animations"
],
"createAsmdef": true
}
}
📦 Default Included Templates
File Templates
MonoBehaviour: Standard Unity class.
ScriptableObject: Data container with [CreateAssetMenu] attribute.
Singleton: Implements the public static Instance pattern.
Interface: Standard C# Interface.
Enum: Standard C# Enum.
EditorWindow: Template for custom Unity Editor tools.
Folder Templates
Empty Folder: Creates a single folder (requires a name).
Starter Template: A robust starting point containing: Scripts, Models, Prefabs, Textures, Materials, SFX, VFX, Animations, Scenes.
💡 Pro Tips
Namespace Logic: If unityPlus.useNamespace is enabled, the extension will wrap your code in a namespace block even if your custom template doesn't explicitly include the word "namespace".
Asmdef Files: For modular architecture, use the "Starter Template" or create custom folder templates with "createAsmdef": true to instantly separate your compilation domains.
Keyboard Warrior: Bind the unity-plus.openMenu command to a keyboard shortcut (like Ctrl+Alt+N) for lightning-fast creation.
Publisher: delarmuss
License: MIT
Enjoy coding! 🎮