Unity Asset Extractor is a Unity bundle extraction tool with both GUI and CLI modes. It supports multiprocessing, progress display, selectable asset types, and configurable source bundle extensions.
- GUI mode with folder pickers, CPU core selection, extract-type checkboxes, and target extension input.
- CLI mode for automation and scripting.
- Configurable input bundle extensions (default:
.unity3d,.bundle). - Multiprocessing extraction with progress bar and live save logs.
- Smart runtime launcher via
run.cmdwith cache to speed up repeated runs.
- Python 3.7+
- Dependencies from
requirements.txtareUnityPy==1.23.0andrich. tkinter(usually bundled with standard Python on Windows)
Use run.cmd at project root:
run.cmdrun.cmd runtime flow:
- Check existing
.venvfirst. - If
.venvexists and requirements are satisfied, run from.venvimmediately. - If
.venvexists but requirements are not satisfied, install requirements and run. - If no usable
.venv, check system Python. - If Python version and requirements are valid, run directly with system Python.
- If Python exists but version is below requirement.
6.1 If
uvexists, create/update.venvwithuvand run. 6.2 Ifuvdoes not exist, create/update.venvusing installed Python and run. - If Python is not available, install/check
uvand run usinguv run.
- Launcher cache file:
.run-cache.json - Cache file is ignored via
.gitignore. - Cache is used to skip repeated environment checks on next runs.
Run without CLI arguments:
run.cmdor directly:
python asset_extracter.pyGUI fields:
- Source Folder
- Output Folder
- CPU Cores (
1to total cores on your machine) - Target Extensions (comma-separated, default
.unity3d,.bundle) - Extract Types
run.cmd -s <source_path> -o <output_path> [-c <cpu_cores>] [-t <types...>] [-e <extensions...>]python assest_extracter.py -s <source_path> -o <output_path> [-c <cpu_cores>] [-t <types...>] [-e <extensions...>]-s,--sourceRequired. Source directory containing bundle files.-o,--outputRequired. Output directory for extracted assets.-c,--cpuOptional. Number of CPU cores to use:1to total cores on your machine. Default: all available cores.-t,--typeOptional. Space-separated extract types:texture2d,textasset,audioclip,gameobject,mesh,font,sprite,shader,monobehaviour.-e,--extensionsOptional. Space-separated input file extensions. Default:.unity3d .bundle
Extract all default types from default extensions:
run.cmd -s "D:/MyGame/Bundles" -o "D:/MyGame/Extracted"Extract only texture2d and textasset with 4 CPU cores:
run.cmd -s "D:/MyGame/Bundles" -o "D:/MyGame/Extracted" -c 4 -t texture2d textassetExtract with custom input bundle extensions:
run.cmd -s "D:/MyGame/Bundles" -o "D:/MyGame/Extracted" -e .bundle .unity3d .ab