Repository navigation
What Changed
Analyze usability improvements:
Analyze now records SerializeReference instances in the new managed_references table. Previously this information was hard to determine without large scale dumping of all the built content.
Archive files (e.g. asset bundles) are tracked by relative path so that it is not a conflict if the same name appears twice in different subfolders.
Dump and Serialized-File Usability
The new --entry argument can be used to run dump and serialized-file commands directly on serialized files that are inside archive files.
Unity 6.7 Support for Content Directories
Support the v3 version of ContentLayout.json. This is required to understand Unity 6.7 content directory output. Backward compatibility is maintained with the Unity 6.6 format.
PRs
- [#149] Name archives by their path relative to the scanned directory by @SkowronskiAndrew in #150
- [#151] Add --entry to dump and serialized-file to read a SerializedFile inside an archive by @SkowronskiAndrew in #152
- [#131] Support ContentLayout v3 (Unity 6.7) with v2 backward compatibility by @SkowronskiAndrew in #147
- [#53] Track SerializeReference instances in analyze by @SkowronskiAndrew in #153
Analyze Schema Change Summary
The analyze database schema version (PRAGMA user_version) goes from 7 to 10 in this release. Re-run analyze to get the new schema.
archives.name
archives.name is now the archive's path relative to the directory passed to analyze, for example
dlc/weapons/main instead of main. The same value appears in the archive column of
object_view, assetbundle_asset_view, monoscript_view, script_object_view and the other views.
content_layout_* changes
To match the new ContentLayout.json schema there are some changes to the content_layout* tables.
Queries over these tables written for v2.3.0 need updating:
| Table / view | Before | Now |
|---|---|---|
content_layout_serialized_files |
cfid, content_hash |
stable_id, artifact_index (the content hash is on content_layout_serialized_files_view and content_layout_binary_artifacts) |
content_layout_loadable_objects |
keyed by object_id_hash |
keyed by loadable_index; object_id_hash is gone |
content_layout_loadable_objects |
lfid = id in the source asset, output_lfid = id in the output file |
lfid = id in the output content file; output_lfid is gone |
content_layout_loadable_objects |
asset_path always present |
asset_path and source_lfid (the old lfid) exist only when a version 2 layout was imported |
content_layout_loadable_objects |
is_root_asset 0/1 |
1-based position in the layout's RootAssets; 0 when not a root (still usable as a boolean) |
content_layout_loadable_dependencies |
object_id_hash |
loadable_index |
content_layout_serialized_file_dependencies_view |
dependency_cfid |
dependency_stable_id |
Watch out for lfid: in a database from a version 2 layout it used to be the source-asset id, and is
now the output-file id. For the source-asset id use source_lfid.
New tables and views
New managed_references table, managed_reference_view and managed_reference_stats_view. They
list every [SerializeReference] instance held by MonoBehaviours and ScriptableObjects: class,
namespace, assembly, rid and data size.
Full Changelog: v2.3.0...v2.4.0