Unity 6.3
0 онлайн 54 гостей 3 в системе
Вход

Анализ построенных ассетов

Каждая установка 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:

  1. Перейдите в папку Tools, которая содержит WebExtract.
  2. Запустите команду WebExtract <FilePathOfArchiveFile>или ./WebExtract <FilePathOfArchiveFile>, если используется macOS или Linux.

Затем программа создает папку, в которой содержатся двоичные данные архивного файла.

Создание текстового представления двоичного файла

Чтобы создать текстовое представление двоичного файла, используйте инструмент binary2text:

  1. Перейдите в папку Tools, которая содержит binary2text.
  2. Запустите команду 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.

Дополнительные ресурсы