Sobre o projeto

O UnityDataTools é uma ferramenta de linha de comando e uma demonstração da biblioteca dinâmica nativa UnityFileSystemApi, destinada a analisar o conteúdo de arquivos de dados do Unity, como AssetBundles e conteúdo de Player. Ele opera diretamente sobre arquivos de dados do Unity sem exigir o Editor, cobrindo a maior parte da funcionalidade das ferramentas WebExtract e binary2text do Unity com melhor desempenho, e adiciona recursos como a geração de um banco de dados SQLite para análise detalhada do conteúdo de builds. Ele foi projetado para escalar em grandes saídas de build e já foi usado para ajustar grandes jogos baseados em Unity. A ferramenta também analisa relatórios de build do Unity Addressables, detectando e interpretando automaticamente as saídas JSON de build do Addressables para extrair informações sobre bundles, assets, dependências, tamanhos de arquivo e métricas de desempenho de build. Instalação: builds para Windows, macOS (Apple Silicon) e Linux são anexados a cada release e são autossuficientes, incluindo o executável, a biblioteca nativa UnityFileSystemApi e documentação offline. Não é necessário runtime .NET. Macs Intel não têm build publicado e devem ser compilados a partir do código-fonte. O README fornece comandos PowerShell e shell para baixar, descompactar e verificar a versão, e observa que checksums.txt contém hashes SHA-256. A documentação cobre formatos de conteúdo do Unity (SerializedFiles, Unity Archives, TypeTrees, formato AssetBundle, formato de build de Player, formato de diretório de conteúdo, ContentLayout.json) e uso da ferramenta (referência de linha de comando, Analyzer, esquema do banco de dados, consultas de exemplo, fluxo de trabalho de agente de IA, comparação de builds, relatórios de build do Addressables, relatórios de build). O repositório está organizado em três camadas: bibliotecas base que leem formatos binários do Unity (UnityFileSystem, UnityBinaryFormat, UnityDataModels), bibliotecas de recursos que transformam dados brutos em saída útil (Analyzer para bancos de dados SQLite, TextDumper para dumps legíveis por humanos, ReferenceFinder para cadeias de referência, inspetores Archive e SerializedFile) e o executável de linha de comando UnityDataTool que os conecta e expõe comandos como analyze, dump, find-refs, archive e serialized-file. O UnityFileSystemApi é compilado a partir do código-fonte do Unity e expõe funcionalidade central para abrir e ler os formatos Unity Archive e Serialized File, incluindo a navegação por TypeTrees para que objetos possam ser lidos genericamente sem conhecimento de tipos codificado. Ele é retrocompatível, mas não é compatível com versões futuras, e também é distribuído na pasta Data/Tools do Unity Editor desde 2022.1.0a14. O repositório inclui cópias pré-compiladas para Windows, Mac e Linux. A compilação exige clonar o repositório, instalar o .NET 9.0 SDK, opcionalmente substituir a biblioteca UnityFileSystemApi incluída por uma de uma instalação do Unity Editor e executar dotnet build -c Release. Testes e dados de teste compartilhados estão incluídos, com dois projetos Unity (Baseline e LeadingEdge) usados para regenerar os dados de teste. O projeto é a evolução do AssetBundle Analyzer, de Francis Pagé, que introduziu pela primeira vez a análise de saída de build do Unity via banco de dados SQLite, mas era lento e frágil devido à dependência de WebExtract e binary2text. UnityDataTools e UnityFileSystemApi foram criados para fornecer acesso rápido e confiável aos arquivos de dados do Unity. O projeto é fornecido no estado em que se encontra e não é oficialmente suportado pela Unity; é descrito como experimental, com relatórios de bugs e pull requests bem-vindos, mas sem garantia de suporte.