This is another month where everyone get some code, because I feel like this is important and useful to everyone. Yay!
This is my one-file, no setup required solution to debugging where you need to monitor some values runtime but don't want to make a custom UI or whatever. You can kinda-sorta use and abuse Debug.Log() for this, but you end up with a sea of text lines that can be almost impossible to parse. Hence, I made Throwup!
1.) Put this file in your project pretty much anywhere.
2.) When you want to throw something on your screen, call GBG_Utils.Throwup("whatever");
3.) It'll do what you see in the screenshot. If your code outputs a single line of text per frame with like ("State: " + boolVal), you'll get a single line of text in your Throwup output. It won't flicker, it will just say State: True or State: False depending on boolVal. Really handy for monitoring arguments or distances or all those other things you want to monitor.
Want to just debug output without any thought? That's fine, Throwup doesn't require any setup. It creates its own UI panel and everything. You can edit in code if you want to change the font or size or color or whatever. By default, it uses bog-standard built-in Unity UI Text, and the default font, so that I don't have to add any dependencies.
Want to output multiple lines in a frame? Ok! It's fine with that. It just adds line breaks.
Want to output some stuff and then stop outputting? Cool! Throwup retains the last output text until the next frame that you output more text to Throwup. So it'll retain old debug messages until you start outputting something again.
That's kinda it. It's pretty simple. You can also Flush if you want the Throwup to go away (hah). There's a lot I'll eventually add to it, but I found it was already super useful, so, enjoy!