Console Toolbox is an all in one console and development tools suite. Simply drop the console into your existing project to start using its built in commands, then expand your toolbox with the click of a button.
I've always liked quake style consoles, so when I set out to create Console Toolbox I knew that was the first thing I needed to get right. This meant I needed to create a console with responsive smooth scrolling and I needed rich text color encoding. I also wanted the color encoding to be simple for users implementing new console commands. Unity has a nice page on Rich Text and I decided to implement Unity's hex color values as an easy to use part of the console. To accomplish this, a user can simply type Terminal.ColorString( "user text", Terminal.lime ) and the text will be appropriately color encoded for the console.
The second area that I focused on was making the console extensible. While Console Toolbox comes with built in command utilities, its impossible to account for the needs of every game. Instead I focused on making an editor extension to build console commands and generate the boiler plate code needed to get them up and running. Also, I decided to make commands implementable either at run time or edit time. The edit time commands are implemented as scriptable objects, because commands are essentially project assets. This also allows developers to easily move commands between projects and decide which commands they want to include in a build.
The last area is the built in commands. I looked at what commands would have the largest utility, and then expanded on them. The entity commands are a great way to see the layout of your scene hierarchy without having the editor. These commands also allow you to call functions and change properties of entities at run time, as well as toggle visually selecting them. I spent a bit of time making sure the hierarchy output is easy to understand, and I added a number of filter capabilities so that users can find exactly what they need. The scene tools go hand in hand with the entity tools, because the entity tools operate on the active scene. I also included a stats tool, but have not included any functionality. There are a lot of great application monitoring packages, so I left this for the end user to implement. I would like to recommend a great package I use: Graphy.
There are more features I haven't gone over, such as console variables, logging, and customizing the console. The package includes full source and I took time to create a straight forward API, so these things should be easily understandable. I also include documentation and a help console command.
This is my first Unity asset, and I hope it is well received. If you do find it useful, please let me know! I'd love to create a community repository of commands if Console Toolbox is adopted by a large number of end users.