Scene Stats
beginner conceptsScene Pilot Pro · Core Concepts
Scene Stats
The Scene Stats window gives you a scene-wide breakdown of geometry, memory, rendering, assets, scripts, and the heaviest objects in your scene. Use it to budget a level, spot regressions after a change, or understand where the bulk of your scene cost lives - all without entering Play mode.
Open it from Window > Kronnect > Scene Pilot Pro > Scene Stats.
Window Layout
The window has three areas:
- Toolbar - Refresh on the left to scan the current scene; Export on the right (enabled once a scan has run).
- Report - six collapsible sections with the scan results. The expanded/collapsed state of each section is remembered between sessions.
- Status bar - shows the active render pipeline, the scene name, and the time of the last scan.
Sections
Geometry
Counts of GameObjects, renderers, submeshes, triangles, vertices, and skinned bones in the scene.
| Metric | What it means |
|---|---|
| GameObjects (active / total) | How many objects exist in the scene and how many are active in the hierarchy. |
| Root GameObjects | Top-level GameObjects with no parent. Many roots can slow down hierarchy iteration. |
| Renderers (active / total) | All Renderer components and how many of them are currently rendering. |
| MeshRenderers / SkinnedMeshRenderers | Per-type breakdown of the renderers above. |
| Submeshes | Mesh subdivisions across all renderers. Each submesh + material combination costs at least one draw call. |
| Triangles / Vertices (instance total) | Sum across all rendered instances - what the GPU draws if everything is on screen. |
| Skinned bones (total) | Total bones across all SkinnedMeshRenderers. High totals dominate CPU skinning cost per frame. |
| Static-batching candidates | Renderers marked Batching Static. Unity will combine them at build time. |
Memory
Estimated runtime memory footprint of the assets referenced in the scene.
| Metric | What it means |
|---|---|
| Texture VRAM (estimated) | Sum of estimated GPU memory across unique textures referenced in the scene. |
| Mesh runtime size | Profiler.GetRuntimeMemorySizeLong sum across unique meshes. |
| Audio runtime size | Profiler.GetRuntimeMemorySizeLong sum across unique audio clips. Reflects the runtime footprint, which can differ from the file size on disk. |
| Unique textures / meshes / audio clips | Distinct asset counts for each category. |
Rendering
Lights, cameras, probes, materials, and shader keywords - the parts of the scene most likely to drive frame cost and build size.
| Metric | What it means |
|---|---|
| Lights - Realtime / Baked / Mixed | Breakdown by light Mode. Realtime is computed every frame; Baked is pre-computed into lightmaps; Mixed depends on the active Lighting Mode. |
| Lights - ForcePixel | Built-in RP only: lights with Light.renderMode = ForcePixel. Always render per-pixel and are required for shadows in Built-in. |
| Casting shadows | Lights with Light.shadows != None. Each one adds a shadow map render pass. |
| Cameras (active / total) | All Camera components and how many are enabled on active GameObjects. |
| Reflection Probes / Light Probe Groups | Probe component counts. Reflection probes set to Every frame are very expensive. |
| Unique materials | Distinct material assets referenced by renderers in the scene. |
| Materials w/o GPU instancing | Materials with enableInstancing off. Each can break dynamic batching. |
| Unique shaders | Distinct Shader assets used. More shaders means more state changes and longer build times. |
| Total shader keywords | Sum of shaderKeywords.Length across all materials. High counts hint at variant explosion. |
Assets
Distinct asset usage and texture composition.
- Unique textures / meshes / prefabs - distinct asset counts referenced from the scene.
- Total prefab instances - total instances; can be higher than unique prefabs if the same prefab is reused.
- Textures by resolution - sub-table grouping textures by power-of-two bucket (
<=64,128,256,512,1K,2K,4K,8K,>8K). Useful to spot textures that are larger than they need to be. - Textures by format - sub-table grouping textures by graphics format (BC7, ASTC, RGBA32, etc.).
- Duplicate-named textures - lists textures with the same file name but different paths. Each path is clickable - click to ping the asset in the Project window.
Scripts
MonoBehaviour usage in the scene and which scripts hook into the per-frame loop.
| Metric | What it means |
|---|---|
| Total MonoBehaviours | Total MonoBehaviour instances across all GameObjects. |
| With Update / FixedUpdate / LateUpdate | Instance counts whose script implements the corresponding loop callback. High Update counts dominate per-frame cost. |
| Top scripts by instance count | Up to 20 most common script types, with a flag column: U=Update, F=FixedUpdate, L=LateUpdate. Hover any row to see the assembly name. |
Top Offenders
The 10 heaviest items in each of four categories. Every row is clickable.
- Heaviest textures (VRAM) - by estimated VRAM. Click to ping the texture asset.
- Heaviest meshes (triangles) - by triangle count. Click to ping the mesh asset.
- Most complex GameObjects - by component count. Click to select the GameObject in the Hierarchy.
- Most instanced prefabs - by number of instances in the scene. Click to ping the prefab asset.
Export
Click Export in the toolbar to save the current report. Three formats are available:
- CSV - one row per metric (
Section, Metric, Value). Suitable for spreadsheets and automated processing. - Text - human-readable plain text with the scene name, pipeline, scan timestamp, and one line per metric grouped by section.
- HTML - styled standalone HTML page with the same data, ready to share with the team or attach to a ticket.
The Export button is disabled until the first scan has completed.
When to Use Scene Stats
- Before submitting a scene - confirm triangle, draw, and shadow caster counts are within budget.
- After a big merge - compare exports before and after to spot regressions in mesh, texture, or script counts.
- To find an obvious offender - jump straight to the Top Offenders section to see the heaviest single texture, mesh, or prefab.
- Pipeline migration - the status bar shows the active render pipeline so the report is unambiguous when comparing Built-in vs URP vs HDRP scenes.
Suggest an improvement
Help us improve this documentation page.