A premium, high-performance desktop application to browse, preview, extract, and import .unitypackage archives — with deep Unity Editor integration.
UnityPackage Manager is a modern, lightweight utility designed for developers, artists, and level designers who need to quickly inspect, extract, or import assets from a .unitypackage — without waiting for the heavy Unity Editor to boot up. Built with Python and PySide6, it features a stunning, hardware-accelerated dark user interface with glassmorphic styles, smooth transitions, and multi-threaded background workers.
- ⚡ Zero-Dependency Inspection: Instantly read any
.unitypackagewithout Unity installed. - 🌲 Interactive Tree View: Clean visual hierarchy with precise file sizes and dynamic file type icons (Folders, C# Scripts, Textures, Prefabs, Materials, Scenes, Audio).
- 🔍 Real-time Filter & Search: Instantly search by name or filter assets by category (Scripts, Textures, Audio, Prefabs) via interactive category pills.
- 🖼️ Premium Live Preview Panel:
- Images: Renders image previews (PNG, JPG, BMP, TGA, PSD) directly in the sidebar.
- Code: Displays code files (C# scripts, Shaders, JSON, YAML) with an integrated syntax highlighter.
- Size Safety: Automatically truncates large text files to keep the interface butter-smooth.
- 📋 System Clipboard Integration: Copy any asset or folder from the archive straight to your Windows Clipboard and paste it directly (
Ctrl+V) inside File Explorer. - 🖱️ Drag & Drop Extraction: Drag assets or folders directly from the tree view into File Explorer or any other external application.
- 🔎 External Previews: Double-click any image or asset to view it instantly in your system's default viewer.
- ⚙️ Unity Meta Support: Choose to extract or ignore
.metafiles alongside your assets with a simple checkbox. - 🕐 Recent Files Screen: Remembers your top 3 recently opened packages on a polished welcome dashboard.
- 🚀 Asynchronous Architecture: All archive indexing and file extractions run on isolated background threads, ensuring the UI remains perfectly responsive.
- 🎮 Open in Unity — Smart Multi-Instance Importer: One-click direct import into any running Unity project without touching Unity Hub (see below).
The Open in Unity button (top-right of the workspace header) intelligently detects all active Unity Editor instances and lets you import the currently loaded .unitypackage directly into the right project.
| Scenario | Behaviour |
|---|---|
| No active Unity instance | Locates the latest installed Unity Editor automatically (via Registry + standard Unity Hub paths) and launches it with the -importPackage flag. |
| 1 active Unity project | Prompts the user to either Import into Active Project (using native single-instance IPC via -openfile) or Open in a New Instance. |
| 2+ active Unity projects | Displays a beautiful glassmorphic selector dialog listing all running projects by name and path. The user clicks the target project to import into it directly — no Unity Hub involved. |
- Queries running
Unity.exeprocesses via WMIC (very fast). - Falls back to a PowerShell
CimInstancequery if WMIC is unavailable or restricted. - Parses the
-projectPathcommand-line argument from each process to extract the active project name and directory. - Uses Win32 API (
EnumWindows+SetForegroundWindow) to bring the target Unity Editor window to the foreground before triggering the import.
graph TD
A[Drag & Drop / Open .unitypackage] --> B[Fast Asynchronous Indexing]
B --> C[Interactive Asset Tree Explorer]
C --> D[Live Code/Texture Sidebar Preview]
C --> E[Context Menu: Copy to Clipboard]
C --> F[Selective / Complete Extraction]
C --> G[Open in Unity Button]
E --> H[Paste anywhere via Ctrl+V]
G --> I{Running Unity Instances?}
I -- None --> J[Launch latest Unity with -importPackage]
I -- 1 instance --> K[Prompt: Import or New Instance]
I -- 2+ instances --> L[Glassmorphic Project Selector Dialog]
K --> M[Import via native IPC -openfile]
L --> M
To run the application from source, make sure you have the following prerequisites installed on your system.
| Component | Minimum Version |
|---|---|
| Python | 3.10 or higher |
| PySide6 | Latest release |
-
Clone the repository:
git clone https://github.com/TheIceDragonz/UnityPackage-Manager.git cd UnityPackage-Manager -
Install the required dependencies:
pip install PySide6
-
Launch the application:
python "UnityPackage Manager.pyw"
Right-click on any element in the folder tree to trigger high-productivity commands:
| Action | Icon | Description |
|---|---|---|
| Extract file / folder... | ⚡ | Extract the selected node (retaining folder structure) to a chosen directory. |
| Copy to clipboard | 📋 | Synchronously extracts the item to a temp directory and copies it to the Windows Clipboard for direct pasting. |
| Copy Unity path | 🔗 | Copies the asset's internal hierarchy path to the clipboard. |
| Copy filename | 📄 | Copies only the final filename of the asset to the clipboard. |
| Open external preview | 🖼️ | Extracts the high-res asset/thumbnail and launches it inside your system's default photo/media player. |
| Recursive Expand/Collapse | Fully expands or collapses all descendants under the selected folder. |
Application preferences (such as your recently opened packages) are automatically stored in the local application data directory to ensure persistence:
%APPDATA%\UnityPackage Manager\settings.ini
Contributions are always welcome! If you want to suggest an improvement or report a bug:
- Fork the repository.
- Create a Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See the LICENSE file for more details.