Unreal-style debug drawing, in Unity
Visual Debugger brings Unreal-style debug visualization to Unity: on-screen log messages and world-space debug shapes, each drawn with a single static call.
Instead of tabbing between the Game view and a wall of console text, you put debug output where you're already looking; on the screen and in the world. DebugScreen.Log prints a colored, timed message to a stacking on-screen list, perfect for live stats, state changes, and one-off warnings. DebugDraw renders spheres, cubes, arrows, and floating text labels at any world position, in any color, for as long as you need them.
There is zero setup. The debug systems create themselves on first use and survive scene loads, so you can call them from anywhere: Update loops, coroutines, collision callbacks. Shapes draw on top of everything, so they stay visible through walls and geometry, and they're pooled, so drawing every frame is fine.
You decide where debug output appears. Screen and shape debugging each have an independent mode: Off, Editor Only, Editor + Development Builds, or All Builds. Leave the overlay on in development builds for on-device debugging, and ship release builds with everything stripped; no #if wrapping required.
Features
- On-screen HUD messages
DebugScreen.Log("Target hit", 5f, Color.green)prints a colored, timed message to a stacking screen list. - World-space shapes
DebugDraw.Sphere / Cube / Arrow / Textdraw at any position with a duration, size, and color; every parameter after position is optional. - Oriented cubes & directional arrows A Cube overload takes Euler angles; Arrow points along a direction vector.
- Always-on-top rendering Shapes and labels stay visible through walls and level geometry.
- Zero scene setup The debug systems create themselves on first use and persist across scene loads.
- Per-build-type output control Screen and shape debugging independently set to Off, Editor Only, Editor + Development Builds, or All Builds; disabled calls early-out with no objects created.
- Pooled shapes Draw every frame without per-call instantiation; shapes are recycled automatically.
- In-editor testers Fire test messages and shapes from an inspector, no code required.
- No dependencies Built-in uGUI text (no TextMeshPro) and a simple unlit overlay shader; no render pipeline packages required.
- Clean assembly definitions Separate runtime and editor asmdefs keep editor tooling out of your builds.
Coming from Unreal?
- AddOnScreenDebugMessage
DebugScreen.Log(...): on-screen HUD messages. - DrawDebugSphere
DebugDraw.Sphere(...): world-space sphere. - DrawDebugBox
DebugDraw.Cube(...): world-space cube, with an optional rotation overload. - DrawDebugDirectionalArrow
DebugDraw.Arrow(...): world-space arrow. - DrawDebugString
DebugDraw.Text(...): world-space text label.