Unity package extractor — это инструмент для распаковки файлов .unitypackage и ресурсных архивов движка, и чаще всего его ищут, когда нужно достать текстуры, модели или аудио из чужого пакета без установки самого редактора Unity. Проблема в том, что двойной клик по .unitypackage без установленной среды разработки ничего не открывает, а внутри архива лежат переименованные файлы, разложенные по папкам с GUID-именами, которые обычный архиватор не соберёт в читаемую структуру.
В этой статье разберём, как устроены пакеты Unity, какие программы реально работают с форматами .unitypackage, .assets и Asset Bundle, и как безопасно извлечь нужные ресурсы. Отдельно остановимся на юридических ограничениях: извлечение чужих ассетов для коммерческого использования почти всегда нарушает лицензионное соглашение.
Что находится внутри файла .unitypackage
Формат .unitypackage — это обычный архив tar.gz, внутри которого каждый ресурс хранится в отдельной папке с именем в виде GUID. В каждой такой папке лежат файлы asset (сами данные), asset.meta (метаданные и настройки импорта) и pathname (исходный путь файла в проекте, например Assets/Textures/wall.png).
Именно файл pathname позволяет восстановить исходную структуру проекта. Простые экстракторы читают эти пути и раскладывают содержимое по нормальным папкам, превращая хаос GUID-каталогов в привычное дерево Assets.
- 📦 asset — бинарное или текстовое содержимое ресурса: текстура, модель, скрипт, префаб.
- 🧾 asset.meta — YAML-файл с настройками импорта и тем самым GUID.
- 🗂 pathname — одна строка с исходным путём файла в проекте.
- 🖼 preview.png — миниатюра предпросмотра, встречается не всегда.
Чем отличаются .unitypackage, .assets и Asset Bundle
Путаница в форматах — главная причина ошибок при распаковке. Пользователь скачивает экстрактор для .unitypackage, а пытается открыть им resources.assets из скомпилированной игры — и получает ошибку, потому что это принципиально разные контейнеры.
| Формат | Где встречается | Чем открывать |
|---|---|---|
| .unitypackage | Asset Store, обмен ассетами между проектами | Unity Editor или сторонние экстракторы tar.gz |
| .assets (resources.assets, sharedassets) | Собранная игра, папка *_Data | AssetStudio, UABE и аналоги |
| Asset Bundle (.ab, .bundle) | Загружаемый контент игр, DLC | AssetStudio, специализированные ридеры |
| .unity3d | Старые веб-плеерные сборки | AssetStudio, disunity (устаревшие) |
Короткий вывод: для исходных пакетов нужен один класс инструментов, для ресурсов готовых игр — совершенно другой. Перед скачиванием программы убедитесь, что она поддерживает именно ваш формат.
Обзор популярных инструментов
Для работы с .unitypackage существуют лёгкие утилиты, которые не требуют установки редактора. Среди известных решений — open-source проекты вроде unitypackage-extractor на Python, а также графические утилиты, публикующиеся на GitHub. Их общий принцип: распаковать tar.gz, прочитать pathname и разложить файлы по структуре папок.
Для файлов .assets и Asset Bundle стандартом де-факто считается AssetStudio — бесплатная программа с графическим интерфейсом, умеющая просматривать и экспортировать текстуры, модели, аудио и текстовые ассеты. Альтернатива — Unity Assets Bundle Extractor (UABE), который позволяет не только извлекать, но и редактировать содержимое.
⚠️ Внимание: скачивайте подобные утилиты только с официальных репозиториев (GitHub-страницы проектов). Сборки с файлообменников нередко содержат вредоносный код, замаскированный под экстрактор.
Как распаковать .unitypackage без редактора Unity
Самый простой способ не требует специальных программ вообще: поскольку .unitypackage — это tar.gz, его открывают архиваторы 7-Zip или WinRAR. Однако на выходе вы получите набор GUID-папок, и структуру придётся восстанавливать вручную, читая файлы pathname.
Автоматизировать процесс помогает Python-утилита. Типовой сценарий выглядит так: установить Python, скачать скрипт экстрактора из репозитория и запустить его, указав путь к пакету:
python unitypackage_extractor.py путь/к/файлу.unitypackage
После завершения рядом появится папка с восстановленной структурой Assets. Проверьте результат: текстуры должны открываться в просмотрщике, а текстовые файлы — в редакторе.
☑️ Проверка перед распаковкой .unitypackage
⚠️ Внимание: если при распаковке архиватор сообщает о повреждении, возможная причина — недокачанный файл. Перекачайте пакет из источника и сверьте размер с указанным на странице загрузки.
Извлечение ресурсов из собранной игры
Ресурсы готовой игры лежат в папке НазваниеИгры_Data рядом с исполняемым файлом. Ключевые файлы — resources.assets и sharedassets0.assets, а также папки с бандлами. Их открывает AssetStudio: через меню File → Load File или Load Folder программа сканирует контейнеры и показывает список ассетов с предпросмотром.
Дальше нужные элементы экспортируются через Export → Selected assets. Текстуры сохраняются в PNG, аудио — в WAV или OGG, модели — в FBX (возможности зависят от версии программы и типа ассета). Имейте в виду, что шейдеры и скрипты обычно экспортируются в скомпилированном или частично восстановленном виде — полноценный исходный код так не получить.
Почему часть ассетов не открывается
Некоторые игры шифруют бандлы или используют собственные форматы упаковки поверх стандартных. В таком случае универсальные экстракторы бессильны — потребуются инструменты, созданные сообществом конкретно под эту игру, либо извлечение окажется невозможным.
Юридические ограничения и типичные ошибки
Извлечение ассетов технически просто, но юридически ограничено. Ассеты из Asset Store лицензируются под конкретный проект покупателя, а ресурсы чужих игр защищены авторским правом. Использование извлечённых чужих ресурсов в собственных коммерческих продуктах — прямое нарушение лицензии и авторских прав, даже если технически файлы лежали в открытом виде.
Допустимые сценарии: изучение устройства пакета в учебных целях, восстановление собственных утерянных исходников, проверка купленного ассета перед импортом. В сомнительных случаях изучите текст лицензионного соглашения конкретного продукта.
- 🚫 Открытие .assets программой для .unitypackage — разные форматы, нужна AssetStudio.
- 🚫 Игнорирование файла pathname — без него структура папок не восстанавливается.
- 🚫 Распаковка поверх рабочего проекта — можно перезаписать одноимённые файлы.
- 🚫 Использование устаревших версий UABE с новыми версиями Unity — возможны ошибки чтения.
FAQ: частые вопросы о Unity Package Extractor
Можно ли открыть .unitypackage архиватором?
Да. Формат основан на tar.gz, поэтому 7-Zip и WinRAR его распаковывают. Но вы получите GUID-папки, и восстановить исходные имена файлов придётся вручную по содержимому файлов pathname.
Чем открыть resources.assets из игры на Unity?
Используйте AssetStudio или UABE — эти программы читают сериализованные файлы Unity и позволяют экспортировать текстуры, модели и аудио. Обычные экстракторы .unitypackage с этим форматом не справятся.
Почему экстрактор выдаёт ошибку при открытии пакета?
Возможные причины: файл недокачан, это шифрованный бандл, либо программа не поддерживает версию формата. Проверьте целостность файла и убедитесь, что тип контейнера соответствует возможностям утилиты.
Легально ли извлекать ассеты из чужой игры?
Для личного изучения — как правило, да, но распространение и коммерческое использование извлечённых ресурсов нарушает авторские права. Ориентируйтесь на лицензионное соглашение конкретного продукта.
Можно ли восстановить исходный код скриптов из игры?
Полноценно — нет. Управляемые сборки (.dll) можно декомпилировать отдельными инструментами, но результат будет отличаться от исходников, а при использовании обфускации читабельность сильно падает.