Installation
Installing TouchConsole Pro should be as easy as opening the unitypackage file (or downloading from the Unity Asset Store) and importing the content. I've tried to keep as much as possible self-contained within the Opencoding folder, but the native extensions have to live in the Plugins folder to work, so I've no choice about that.
If you don't want to use the demo scene, just exclude the Demo directory when you import it. Everything else is required!
Getting started
If you want to see an example for how TouchConsole Pro works, just open the ConsoleDemoScene scene and press play (or build to a device). The demo scene provides a simple game that has a number of console commands you can use to interact with it. It's pretty basic, but should give you an idea of how the console works.
By default, the console will be automatically added to any scene when you press 'play' in the editor, but to use the console in built versions of the game you'll need to manually add it to your first scene. You can disable the automatic adding of the console to scenes in the editor in the TouchConsole Pro section of the Unity Preferences.
Configuring the Console prefab
You can configure how the console behaves in the Settings asset in Opencoding/Console/Settings, or press the Settings... button on the DebugConsole prefab itself. The defaults are pretty sensible, so you can probably skip over this section and come back to it once you've had a play around with the console.
- Dont Destroy On Load: When this is ticked, the console will remain loaded across scene changes. You almost certainly want to leave this ticked.
- Auto Set Version: With this ticked, the Game Version field (see next) will be automatically set to the "Bundle Version" set in the Player Settings.
- Game Version: This version number is shown within emailed log files. This is pretty useful if you have QA testers sending you log files.
- Disable If Defined: This allows you to specify a pre-processor define that will cause the console game object to be removed from the game when built. (See Build Process).
- Only In Dev Builds: When ticked, this will cause the console to be removed from builds where the "Development Build" checkbox isn't ticked in the Build Settings.
- Show On Exception: When ticked, the console will automatically open if an exception occurs.
- Touch Detector: This allows you to select which touch detector to use to open the console. The options are either swiping two fingers down the screen (default) or holding three fingers on the screen for about half a second. There is also a 'None' option to disable the touch detector, which can be used if you want to write your own method for opening the console.
- Open And Close Keys: This allows you to configure which keys open and close the console.
- Show Separate Exception Button: With this ticked, a separate (pink rectangle) button is shown to allow you to just see exceptions (rather than combining them with errors)
- Show Separate Assert Button: With this ticked, a separate (blue circle) button is shown to allow you to just see asserts (rather than combining them with errors)
- Disable UGUI When Open: This disables the event UGUI EventSystem when the console is open. Mostly this is fine, but if you have an unusual set up, this might cause issues.
- Pause Game When Open: Pauses the game (sets Time.timeScale to 0) while the console is open. This is useful if your game is fast-paced and you don't want to die/get attacked/run out of time while using the console. When the console closes, the timeScale is returned to whatever it was when the console is opened.
- Default To Email Address: This is the default email address that logs are emailed to. The use can modify this before sending, if they wish.
- Scale factor sliders: This allows you shrink or enlarge the console. By default the portrait mobile console is shrunk, to allow all the buttons to fit on the top bar.
- Log Screenshot Capture Mode: This lets you configure how the console captures a screenshot when a log is emailed. Disabled prevents a screenshot being emailed, Capture Main Camera just takes a screenshot of your main camera (whichever camera has the MainCamera tag) and Capture Full Screen disables the console briefly and captures the whole screen.