Drowned Bone Optimizer
Code — GetComponent, Camera.main, Find*, LINQ, and string allocation inside Update/ ... Editor-only. Zero runtime footprint. Nothing in this package ships in your player build.
by Drowned Bone
Price History +
- Unity 2022.2+ required (uses SerializedObject IDisposable pattern))
- Editor-only — no code or assets included in player builds
- Isolated Assembly Definition — won't bloat or interfere with your project's compile
- Optional dependency: com.unity.ugui (bundled by default) — only used by the Prefab/UI checks
- TextMeshPro auto-detected via reflection — no hard dependency, no error if TMP isn't installed
- Self-contained: everything lives under Assets/DrownedBoneOptimizer/, uninstall by deleting one folder
- Audit history cached in Library/ — never committed to version control, never shipped in builds
- Works with -batchmode for CI/CD pipelines
Drowned Bone Optimizer scans your project for the performance mistakes that quietly kill frame rate — and fixes the ones it safely can, with one click.
Run a full audit from Window > Drowned Bone Optimizer and get a scored, filterable list of findings across five analyzers:
- Assets — uncompressed/huge/NPOT textures, Read/Write enabled, missing mipmaps, audio import settings
- Prefabs & Scenes — Canvas/UI layout traps, Animator culling, particle prewarm, non-convex colliders on Rigidbodies, material instancing leaks
- Code — GetComponent, Camera.main, Find*, LINQ, and string allocation inside Update/FixedUpdate/LateUpdate
- IL bytecode — boxing allocations the source scan can't see
- Project Settings — Physics and Quality settings known to cause spikes
Fix what's safe automatically. Every finding with an unambiguous fix gets a one-click Auto-Fix, or batch-apply everything in view with Fix All Visible.
Track progress over time. Save a baseline, audit again after a sprint, and see exactly what got better or worse — plus a full audit history with diff reports.
Built for CI. A headless entry point (CIBuilder.RunAnalysis) runs the same audit from the command line and fails the build on real error-level findings — including if an analyzer itself crashes, never silently passing a broken run.
Extensible. Drop in your own analyzer by implementing one interface — no registration step, it's picked up automatically.
Editor-only. Zero runtime footprint. Nothing in this package ships in your player build.