How cobbfan9/asset-studio-web works
AssetStudioWeb is a browser-only TypeScript library for reading Unity asset data and exporting textures. Its principal workflow is to pass file bytes to AssetsManager, identify the file type, unpack bundles when needed, parse serialized assets, construct typed objects, and export texture image data. The README also identifies a live demo but gives no workflow details. The graph reflects the sampled calls and SOURCE INDEX references; unsampled modules are represented only where their role is clear from the tree or README.
Main entry points: AssetsManager.ts Assets manager · ObjectReader.ts Object reader · Texture2D.ts Texture exporter · BundleFile.ts Bundle reader
Components 19
Input and containers
- Assets manager
src/AssetsManager.ts - File detection
src/Util/FileReader.ts - Bundle reader
src/Files/Bundle/BundleFile.ts - Bundle streams
src/Files/StreamFile.ts - Decompression dispatch
src/Decompression/Decompression.ts - LZ4 codec
src/Decompression/Lz4/lz4.js - LZMA codec
src/Decompression/Lzma/lzma_main.ts
Asset parsing
- Serialized files
src/Files/Serialized/SerializedFile.ts - Object reader
src/Util/ObjectReader.ts - Typed Unity objects
src/Classes/Object.ts - Class identifiers
src/Enums/ClassIDType.ts
Texture export
- Texture asset model
src/Classes/Texture2D.ts - Texture resource access
src/Util/ResourceReader.ts - Texture exporter
src/Exporters/Texture2D.ts - Image decoders
src/Exporters/ImageDecoders/decode.ts - Texture formats
src/Enums/TextureFormat.ts
Shared runtime
- Unity versions
src/Util/UnityVersions.ts - Binary reader
src/Util/EndianBinaryReader.ts
Other components
- Browser caller
Connections 22
- Browser caller → Assets manager: provides bytes
- Assets manager → File detection: classifies input
src/AssetsManager.ts - Assets manager → Bundle reader: opens bundle
src/AssetsManager.ts - Assets manager → Serialized files: parses assets
src/AssetsManager.ts - Assets manager → Object reader: creates readers
src/AssetsManager.ts - Assets manager → Texture asset model: constructs textures
src/AssetsManager.ts - Assets manager → Texture exporter: exports textures
src/AssetsManager.ts - File detection → Binary reader: reads headers
src/Util/FileReader.ts - Bundle reader → Decompression dispatch: decompresses blocks
src/Files/Bundle/BundleFile.ts - Bundle reader → Bundle streams: creates streams
src/Files/Bundle/BundleFile.ts - Decompression dispatch → LZ4 codec: dispatches codec
src/Decompression/Decompression.ts - Decompression dispatch → LZMA codec: dispatches codec
src/Decompression/Decompression.ts - Serialized files → Binary reader: reads serialized data
src/Files/Serialized/SerializedFile.ts - Serialized files → Object reader: provides object metadata
src/Util/ObjectReader.ts - Object reader → Binary reader: extends reader
src/Util/ObjectReader.ts - Object reader → Class identifiers: maps object types
src/Util/ObjectReader.ts - Object reader → Unity versions: uses version data
src/Util/ObjectReader.ts - Typed Unity objects → Object reader: wraps object data
src/Classes/Object.ts - Texture asset model → Texture resource access: reads image data
src/Classes/Texture2D.ts - Texture exporter → Texture asset model: reads texture asset
src/Exporters/Texture2D.ts - Texture exporter → Image decoders: decodes image blocks
src/Exporters/Texture2D.ts - Texture exporter → Texture formats: handles formats
src/Exporters/Texture2D.ts