Skip to content

v2.4.0 Usability improvements and Unity 6.7 support

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Oct 14:42
· 2 commits to main since this release

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

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