프로젝트 소개
UnityDataTools는 UnityFileSystemApi 네이티브 동적 라이브러리의 명령줄 도구이자 쇼케이스로, AssetBundles 및 Player 콘텐츠와 같은 Unity 데이터 파일의 내용을 분석하는 것을 목표로 합니다. Unity 에디터 없이 Unity 데이터 파일에서 직접 실행되며, Unity의 WebExtract 및 binary2text 도구의 대부분 기능을 더 나은 성능으로 커버하고, 상세한 빌드 콘텐츠 분석을 위한 SQLite 데이터베이스 생성과 같은 기능을 추가합니다. 대규모 빌드 출력에 맞게 확장되도록 설계되었으며, Unity 기반의 대형 게임을 미세 조정하는 데 사용되어 왔습니다.
이 도구는 또한 Unity Addressables 빌드 리포트를 분석하여 Addressables JSON 빌드 출력을 자동으로 감지하고 파싱하여 번들, 에셋, 종속성, 파일 크기 및 빌드 성능 지표에 대한 정보를 추출합니다.
설치: Windows, macOS(Apple Silicon) 및 Linux용 빌드가 각 릴리스에 첨부되어 있으며, 실행 파일, 네이티브 UnityFileSystemApi 라이브러리 및 오프라인 문서를 포함하는 자체 포함형입니다. .NET 런타임이 필요하지 않습니다. Intel Mac은 게시된 빌드가 없으며 소스에서 빌드해야 합니다. README는 다운로드, 압축 해제 및 버전 확인을 위한 PowerShell 및 셸 명령을 제공하며, checksums.txt에 SHA-256 해시가 포함되어 있음을 명시합니다.
문서는 Unity 콘텐츠 형식(SerializedFiles, Unity Archives, TypeTrees, AssetBundle 형식, Player 빌드 형식, 콘텐츠 디렉터리 형식, ContentLayout.json)과 도구 사용법(명령줄 참조, Analyzer, 데이터베이스 스키마, 예제 쿼리, AI 에이전트 워크플로, 빌드 비교, Addressables 빌드 리포트, 빌드 리포트)을 다룹니다.
저장소는 세 계층으로 구성됩니다: Unity 바이너리 형식을 읽는 기본 라이브러리(UnityFileSystem, UnityBinaryFormat, UnityDataModels), 원시 데이터를 유용한 출력으로 변환하는 기능 라이브러리(SQLite 데이터베이스용 Analyzer, 사람이 읽을 수 있는 덤프용 TextDumper, 참조 체인용 ReferenceFinder, Archive 및 SerializedFile 검사기), 그리고 이들을 연결하고 analyze, dump, find-refs, archive, serialized-file과 같은 명령을 노출하는 UnityDataTool 명령줄 실행 파일입니다.
UnityFileSystemApi는 Unity 소스 코드에서 컴파일되며 Unity Archive 및 Serialized File 형식을 열고 읽는 핵심 기능을 노출합니다. 여기에는 하드코딩된 타입 지식 없이 객체를 일반적으로 읽을 수 있도록 TypeTrees를 탐색하는 것이 포함됩니다. 하위 호환되지만 상위 호환되지는 않으며, 2022.1.0a14부터 Unity 에디터의 Data/Tools 폴더에도 배포됩니다. 저장소에는 Windows, Mac 및 Linux용 사전 컴파일된 복사본이 포함되어 있습니다.
빌드하려면 저장소를 복제하고, .NET 9.0 SDK를 설치하고, 선택적으로 번들된 UnityFileSystemApi 라이브러리를 Unity 에디터 설치의 라이브러리로 교체한 다음 dotnet build -c Release를 실행해야 합니다. 테스트 및 공유 테스트 데이터가 포함되어 있으며, 두 개의 Unity 프로젝트(Baseline 및 LeadingEdge)가 테스트 데이터를 재생성하는 데 사용됩니다.
이 프로젝트는 Francis Pagé의 AssetBundle Analyzer의 진화형으로, 처음으로 Unity 빌드 출력의 SQLite 데이터베이스 분석을 도입했지만 WebExtract 및 binary2text에 의존하여 느리고 취약했습니다. UnityDataTools와 UnityFileSystemApi는 Unity 데이터 파일에 대한 빠르고 안정적인 액세스를 제공하기 위해 만들어졌습니다. 이 프로젝트는 있는 그대로 제공되며 Unity의 공식 지원을 받지 않습니다. 실험적인 것으로 설명되며, 버그 보고와 풀 리퀘스트는 환영하지만 지원은 보장되지 않습니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.