The Project Auditor tool has some interesting views of data from the Build Report.
https://docs.unity3d.com/6000.7/Documentation/Manual/project-auditor/build-view-reference.html
However, this does not scale that well for very large builds, and it doesn't support AssetBundles builds, or viewing previous builds.
Meanwhile, UnityDataTools supports putting the same raw BuildReport data into SQLite, which can easily handle queries over millions of objects.
But because SQL queries are a lot less user friendly than a built-in UI, this task is to try to bridge the gap. E.g. we will have documentation that shows equivalent queries for each one. And in cases where the SQL is complex we can update the BuildReport related schema to directly add new "views" in the database, so that the example queries can use the view.
The documentation should also show some small snippets of the expected output based on a simple project, like Happy Harvest.
Note: this task is focused on Player builds. It can work for AssetBundles build using BuildPipeline.BuildAssetBundles beacuse they populate the same data. But to keep scope of this task manageable we won't include any AssetBundle examples (this reflects how Project Auditor only views Player builds).
Queries
Summary of BuildReport data exposed by the Project Auditor Build section, which will map to the new documentation.
General build info
General target, times, sizes which come straight out of the BuildReport with minimal processing.
Very similar information is exposed by the Unity 6.6 Build Analysis UI.
But a query that lists similar values as columns should be easy to show as a demonstration.
Size by Runtime Type (Top 10)
See image above
Breakdown of object by Type, ordered by total size, showing object count.
This is basically what we have pre-calculated in the ContentSummary so it is probably just a query using the ContentSummary type info.
Could also show a query to calculate this from the main object table for older BuildReports that don't have ContentSummary.
Object grouped by Source Asset
Note: all the grouping views sort of have two functions - one is a "Group by", with the collapsed entries showing some stats over all the matches (e.g. object count). And then the ability to see the entries in each group. For equivalent SQL this might actually be two queries - one showing how to get the Group by view, and one showing how to do a filtered query on the "group by" field that shows the results with columns similar to what the UI shows when expanding out the entry.
Object grouped by Source File Extension
Object by Importer type
We will NOT support this grouping in UnityDataTool. The importer is not tracked in the build information, this is being determined in the editor (I think based on file extension). Grouping by source file extension is probably a sufficient equivalent for this view.
Object grouped by Build File
Showing the content of each file (including .ResS files). This matches closely to the PackedAssets datastructure that is imported into the database.
Object by Runtime Type
Grouping objects by their type
Object by Source Path
From the source asset path showing all the objects in the build.
Build Steps
This is implemented in the Unity 6.6 Build Analysis UI. We are not planning to import Build Steps into UnityDataTool analysis database.
uild
The Project Auditor tool has some interesting views of data from the Build Report.
https://docs.unity3d.com/6000.7/Documentation/Manual/project-auditor/build-view-reference.html
However, this does not scale that well for very large builds, and it doesn't support AssetBundles builds, or viewing previous builds.
Meanwhile, UnityDataTools supports putting the same raw BuildReport data into SQLite, which can easily handle queries over millions of objects.
But because SQL queries are a lot less user friendly than a built-in UI, this task is to try to bridge the gap. E.g. we will have documentation that shows equivalent queries for each one. And in cases where the SQL is complex we can update the BuildReport related schema to directly add new "views" in the database, so that the example queries can use the view.
The documentation should also show some small snippets of the expected output based on a simple project, like Happy Harvest.
Note: this task is focused on Player builds. It can work for AssetBundles build using BuildPipeline.BuildAssetBundles beacuse they populate the same data. But to keep scope of this task manageable we won't include any AssetBundle examples (this reflects how Project Auditor only views Player builds).
Queries
Summary of BuildReport data exposed by the Project Auditor Build section, which will map to the new documentation.
General build info
General target, times, sizes which come straight out of the BuildReport with minimal processing.
Very similar information is exposed by the Unity 6.6 Build Analysis UI.
But a query that lists similar values as columns should be easy to show as a demonstration.
Size by Runtime Type (Top 10)
See image above
Breakdown of object by Type, ordered by total size, showing object count.
This is basically what we have pre-calculated in the ContentSummary so it is probably just a query using the ContentSummary type info.
Could also show a query to calculate this from the main object table for older BuildReports that don't have ContentSummary.
Object grouped by Source Asset
Note: all the grouping views sort of have two functions - one is a "Group by", with the collapsed entries showing some stats over all the matches (e.g. object count). And then the ability to see the entries in each group. For equivalent SQL this might actually be two queries - one showing how to get the Group by view, and one showing how to do a filtered query on the "group by" field that shows the results with columns similar to what the UI shows when expanding out the entry.
Object grouped by Source File Extension
Object by Importer type
We will NOT support this grouping in UnityDataTool. The importer is not tracked in the build information, this is being determined in the editor (I think based on file extension). Grouping by source file extension is probably a sufficient equivalent for this view.
Object grouped by Build File
Showing the content of each file (including .ResS files). This matches closely to the PackedAssets datastructure that is imported into the database.
Object by Runtime Type
Grouping objects by their type
Object by Source Path
From the source asset path showing all the objects in the build.
Build Steps
This is implemented in the Unity 6.6 Build Analysis UI. We are not planning to import Build Steps into UnityDataTool analysis database.
uild