TouchConsole Pro is a debug console designed to work really well on all the platforms Unity supports, as well as the Unity editor. It’s based on a console that’s been used behind the scenes for a number of very successful mobile games, so hopefully it’ll make your lives easier too!
At a high level it lets you do two things: See what’s going on in your game, on device, by viewing exceptions and console output and control your game using commands that you define in your code. There’s a number of other extensions out there that aim to do this, but my goal with this extension is to make the console as user-friendly and enjoyable to use as possible - for developers and their QA team.
You can find a demo, documentation and more information here, and view it (and download it!) on the asset store here.
I’ve been professionally developing with Unity for about 5 years, but this is my first released asset, so I’d love to get your feedback.
I’ve recently released version 1.1.1 with some fixes - thanks to Ben at HandCircus for his feedback that lead to most of these.
Added a new method for opening the console - holding down three fingers for about half a second. This can be enabled in the settings.
Added hook to allow you to customise the email that is sent - extra attachments can be added and the message modified or replaced. This is useful for adding your save file or screenshots etc.
Added method for triggering the log email to be sent, if you want to provide another method for sending it.
Fixed the log being blank on Unity 5.
Fixed WebGL builds on Unity 5.
Fixed an error when the console was used in a game with stripping enabled (added a link.xml file).
Fix for builds failing when the console was used in a game with the Facebook SDK included.
Hello, I’ve tried emailing you on ‘contact@opencoding.net’ but it fails to connect.
I’ve been looking around for a decent unity console for a while and this looks like what I’ve been searching for.
There’s one thing I’d like added as a feature which is to add a “username / password” system which prevents others from executing the commands. Of course this would be an optional setting and would allow users to see and email me logs without being able to touch the console commands. If your system had this then it would be exactly what I’m looking for.
Here’s another console with some good features but it’s far too expensive for what it is
It’s interesting you ask for that feature, as that’s something we’ve used for our projects before - so that we can release internal builds with a console, but without allowing people to cheat.
I’ll add this to the next release - I think just a simple password (rather than a full username and password) would probably be sufficient - what do you think? If you’ve purchased the console and you’d like access to a beta of this, drop me an email with your invoice number and I’ll send it over within the next week (after Christmas!)
I’m aware there’s lots of other consoles out there, but they’re generally much simpler or more complex. I’m trying to strike a balance, and make it work well on small screens with big fingers!
Ah the topic of IT security, this might just be a side effect of me working in the industry but I’d want to be 100% positive that no one else is able to execute admin commands. A system that is secure and not inconvenient to the developer. Multiple Accounts:
Admin: Full access.
Alpha: Access to selected cheats / tools.
Beta: Access to a different set of selected cheats / tools.
Release: Approved cheats available to all users.
All accounts can be renamed to prevent hacking.
Developer Convenience:
Maybe allow the devs to copy an .ini file to their mobile devices / systems which contains the username/password and when the game is loaded the console will read this and know who is using it. This would prevent you from having to constantly fill out the fields. If the .ini file isn’t found or the credentials are incorrect it will default the user to the “Release” or default account which may or may not have cheats / tools associated with it.
Of course what I’ve said above would probably take a bit of work and I’m sure that for many devs a simple password would suffice and I don’t blame you if you do only implement a simple password system. However because .dll files are in use I would want to make sure that I can extend your framework and implement the rest myself before purchasing this asset.
Most of the other consoles are very basic and the only one I was really interested in was KGFConsole however this hasn’t been updated since Mar 05, 2013 / has no security system / doesn’t work well with touchscreen devices / requires 1 license per seat and isn’t cheap to start with, although you do have the source code.
That’s useful, thanks! I haven’t personally come across a use-case for such a complicated system, but I can see a use for large-scale public betas - is this your use case? I’ll have a proper think about it over Christmas, but at the very least, I’ll implement the basic system and an extension point that would support the kind of system you describe.
This plugin looks awesome, but I’m not sure that it’s working right in your web player. After I right-click, the “copy” and “clear all” buttons show up, but they don’t do anything when clicked…
I would very much love a plugin like this, but I don’t want to buy when it doesn’t appear to work. Please advise.
Thanks for noticing that copying was broken in the web player. I’ve just fixed this and you can try it out on the demo page. I’ll submit a new version with this fix shortly, but it’ll take about a week to go through Unity’s approval process (quite likely longer given that it’s Christmas!)
In the meantime, if you purchase the plugin and want to get the fixed version, please drop me an email at support@opencoding.net.
I’ve just submitted a version that adds the hook required to implement this system, and it includes a basic example of how to implement a single hardcoded password. It should be pretty easy to extend this to support multiple users if you desire.
You can see a Web Player demo of this here. Press ~ to open the console, then press the ? mark button at the end of the input line to see the two commands you can use.
The full code for the password system is included in the 1.2.0 release, so you can modify it to your hearts content. You can see the main class for this here (this doesn’t include the UI for the popup).
If you purchase before 1.2.0 is approved in a week or so, let me know and I’ll send you an advanced copy.
1.2.0 has just been approved by Unity. Here’s the changelog:
IMPORTANT: If upgrading to this version and building for iOS, make sure you rebuild your Xcode project from scratch or you will get compile errors.
New Features
Added CommandHandlers.BeforeCommandExecutedHook that allows you to prevent a command from being executed.
Added a demo scene and code that shows how you can use this to ask the user for a password before certain commands are executed - useful for public betas.
Changes
Switched to a different method for modifying the Xcode project. This should be more compatible with other Unity plugins, most notably the Facebook SDK. On upgrade, the old code for this will be automatically deleted to avoid the unnecessary code hanging around - you may notice this in your version control system.
The filter bar is now automatically closed when the console is.
On Mobile: Opening the filter bar with the console maximized now temporarily minimizes the console so the keyboard doesn’t overlay the console.
Bug Fixes
Worked around a bug in Unity 4.6.1 that caused a crash on iOS and Android (thanks to the multiple users who noticed this!)
Fixed copying text not working in the web player (thanks jerotas!)
Fixed an exception that occurred when the filter bar was closed using the Done/Return button on the Touch Screen Keyboard.
This looks great, very handy. I am going to keep an eye on this, it might come in handy for a lot of our projects.
One issue I noticed, is that when inside the console and I press the “Clear History” button in the little settings menu (cog button) it does not clear the numbers indicating the various logs. It does clear the messages, but states I still have “6” errors for example.
I’ve just submitted version 1.3.0 to the asset store, I expect it’ll be live in a week or so. This version has no major new features, but some pretty important bug fixes for Unity 5, Android and iOS.
If anyone has purchased it and would like the update sooner, please email your invoice number to support@opencoding.net. Please also let me know what Unity version you are using, as there are minor differences between the Unity 4.x and 5.0 version.
New features
Added Run button to the end of the input line on mobile devices. This is makes the console at least partly useable in landscape on Nexus and Xperia devices (where a Unity bug causes the touch screen keyboard to be non-interactive).
Made the keys that open/close the console configurable. By default this is one of ~, , `, |, § or ±.
Changes
Suggestion buttons now automatically execute the command if it takes no parameters.
Bug fixes
Fixed Android log emails not including the attachment sometimes.
Fixed a very infrequent issue where an exception would sometimes be thrown when log messages were emitted from a non-main thread.
Fixed error that sometimes occurred when running the Demo scene.
Fixed an issue on Windows where the console would flash up for a single frame when opened.
There’s a bug in Unity 5.2 that breaks keyboard input on OS X (editor and standalone). This affects TouchConsole Pro too.
I’ve just submitted version 1.5.0 which contains these changes, many of which have been requested/found by my wonderful users:
New features
By default the console is now automatically added to any scene in the project when you press play. This doesn’t affect builds, and can be turned off via the Unity Preferences window.
Added support for setting the default email address that logs should be emailed to.
Added support for changing the scale of the console, with independent settings for the editor, mobile and standalone.
Added ability to change the log history size limit (default 3000 items) using LogHistory.Instance.ItemLimit.
Made it easier to modify the install location: you’ll need to edit the _opencodingDirectoryLocation field in DebugConsoleEditorSettings.cs.
Bug fixes
OS X Editor/Standalone: Temporary work around for broken keyboard input on OS X (introduced in Unity 5.2). There’s now a menu item that allows you to show/hide the console in the editor (or Command+G).
Fixed an error related to an undocumented property (TextEditor.pos) that was renamed in Unity 5.2.
iOS: Fixed console appearing too large when the “Target Resolution” player setting is set to something other than Native.
Fixed exception that occurred when Unity ‘hot reloaded’ the project due to the console not being able to completely serialize its state. A better fix for this will come in the future.
Fixes exporting the console log on Windows where invalid characters in the filename caused it to fail.
Fixed exporting the console log failing on standalone builds.
Fixed exception occurring when using Debug.Assert.
If anyone who has purchased the plugin would like this in advance of it being approved, send your invoice number to support@opencoding.net.