Debug Draw system

Unreal has had three issue that has annoyed me for a long time; Vislog and the DrawDebug functions aren't cross-integrating, they behave slightly differently, and there's no way to update a previously create debug draw. For example, drawing a capsule around the player, then moving that capsule with the player.

  1. If you want to debug something both live and in the vislog recorder, you have to call 2 different functions.

  2. DrawDebugCapsule will center the capsule at the origin point. But Vislog Capsule Shape will create a capsule with the bottom of the capsule touching the origin point.

  3. Functions like PrintString have a "key", so you can monitor a specific message in the corner of the screen and modify that one. The draw debug functions do not have this.

  4. Bonus issue: With the introduction of Mass, it's far easier to do multithreading code that often has to debug draw something. But the debug draw functions can sometimes cause odd crashes when used outside the game thread

OmniToolbox provides numerous functions called Draw and Log... and then a shape. These functions look to solve all problems in one go.

circle-info

To disable runtime visualization, use the OmniToolbox.Debug.DrawDebugShapes console command. It will continue to record vislog shapes.

Last updated