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 +

Editor tool that finds and auto-fixes common and advanced Unity performance mistakes.
  • 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.