Анализ построенных ассетов
Каждая установка Unity Editor включает в себя низкоуровневые инструменты командной строки WebExtract и binary2text, которые можно использовать для проверки содержимого данных сборки Unity. Используйте эти инструменты для извлечения файлов, встроенных в архив Unity, таких как AssetBundles, или для получения выхода сборки.
-
WebExtract: Извлекает файлы из архива Unity в двоичном формате. Помещает двоичный файл в папку, названную в честь исходного файла. Эта программа может использоваться для извлечения следующих данных:
- AssetBundles включая Addressables сборку выход.
- Файл
data.unity3dиз сжатой сборки Player. - Файлы внутри
StreamingAssets/ContentArchivesпапка для построений Entities.
-
binary2text: Создает текстовое представление двоичного файла
SerializedFile(UnityЭто позволяет проверить данные объекта, ссылки и информацию о типе. Однако эта программа содержит полезную информацию только для файлов, которые содержат TypeTrees. По умолчанию данные проигрывателя не содержат TypeTrees. Примеры двоичных файлов, которые можно открыть с помощью этого инструмента, включают следующее:- Сериализированные файлы внутри архивов, которые были извлечены с помощью WebExtract.
- BuildReport файлы (например,
Library/LastBuild.buildreport). - Файлы в папке
Library/Artifacts, которые можно просмотреть, чтобы понять результат процесса импорта. - Файлы данных игрока, включая
levelиsharedassetфайлы.
Формат SerializedFile
SerializedFile — это формат данных ассетов, серийизованных Unity. Он существует в текстовом или двоичном формате. Вы можете использовать Режим серийизации активов Project Настройка, чтобы определить, будет ли Unity серийизировать ассеты в двоичном, текстовом или смешанном режиме (который использует формат, в котором ассет был ранее сохранен, что приводит к смешению двоичных и текстовых файлов).
Двоичный формат используется для импортированных артефактов в Library/Artifacts, выходных файлах сборки Player, AssetBundles и других архивах сборки. Инструмент binary2text может проверить этот двоичный формат.
Используйте WebExtract и binary2text
WebExtract и binary2text устанавливаются в следующих местах:
| Платформа | Путь установки |
|---|---|
| Windows | C:\Program Files\Unity\Editor\Data\Tools |
| macOS | /Applications/Unity/Unity.app/Contents/Tools |
Развернуть архивные файлы
Чтобы извлечь файл архива в двоичном формате, используйте инструмент WebExtract:
- Перейдите в папку
Tools, которая содержитWebExtract. - Запустите команду
WebExtract <FilePathOfArchiveFile>или./WebExtract <FilePathOfArchiveFile>, если используется macOS или Linux.
Затем программа создает папку, в которой содержатся двоичные данные архивного файла.
Создание текстового представления двоичного файла
Чтобы создать текстовое представление двоичного файла, используйте инструмент binary2text:
- Перейдите в папку
Tools, которая содержитbinary2text. - Запустите команду
binary2text <FilePathOfBinaryFile>или./binary2text <FilePathOfBinaryFile>, если используется macOS или Linux.
Затем программа создает файл .txt в той же папке, что и двоичный файл.
Примечание: Инструмент имеет обратную совместимость, так что более новые версии Unity могут читать файлы, созданные более старыми версиями Unity, но более старые версии Unity могут не быть в состоянии читать файлы, созданные более новыми версиями.
Инструмент binary2text имеет следующие дополнительные аргументы, которые можно передавать при его запуске:
| Аргумент | Описание |
|---|---|
<outputTextFile> |
Указывает файл для записи выхода. Если оставить пустым, binary2text записывает выход в <BinaryFileName>.txt. |
-typeinfo |
Включает информацию TypeTree из заголовка SerializedFile. Сюда входят типы Unity, классы MonoBehaviour-based C# и типы [SerializeReference], что полезно для отладки удаления кода, отсутствующих типов или несоответствий сериализации между версиями Unity. |
-largebinaryhashonly |
Обобщает содержимое с помощью хэша вместо печати каждого байта. |
-hexfloat |
Печатает числа с плавающей точкой в шестнадцатеричной системе счисления. Это более точно, чем десятичная система счисления по умолчанию. |
-detailed |
Обеспечивает подробный выход для определенных структур данных. |
UnityDataTools
UnityDataTools является более новой альтернативой WebExtract и Binary2Text. Он содержит следующие функции:
dumpопция: Открывает AssetBundle и производит текстовые дампы каждогоSerializedFile, содержащегося в нем, непосредственно в текущей рабочей папке, без необходимости предварительной полной двоичной извлечения. Это поведение аналогичноbinary2text.analyzeвариант: Заполняет базу данных SQLite подробной информацией о содержимом AssetBundle. Это быстрее, чемbinary2textи может обрабатывать большие количества объектов и ассетов, с которыми могут столкнуться инструменты UI.
Дополнительные сведения см. в хранилище UnityDataTools.