Console Commands & UI Panels

A powerful, flexible, and easy-to-use console command system for Unity Engine. This system provides the user with an easy attribute-driven way to define new console commands. The console command system also supports shell variables, named variables that can have their values modified through the command shell/console. Examples are included.


This asset also comes with a fully-functional demo project and UI panel/tab panel controllers that are used to demonstrate the command shell although users can implement a custom UI interface for the console if they choose.


Want to give players in your game an easy way to customize their experience? The provided shell variable system allows you to create console-defined settings that the user can modify by simply executing a corresponding console command.


Sick of having to implement time-consuming menus or change things in your scene for testing? Use this asset to create developer console commands that speed up testing to help reduce overall development time in your project.


Features:

  • Easily register console commands using attributes or at runtime.
  • Register shell variables using attributes allowing you to enable users to easily modify game settings through the use of shell variables.
  • Decoupled UI & Command System lets you either use the built-in console panel or build your own.
  • Powerful public API that can be used to add, modify, or remove commands & shell variables even at runtime.
  • Documentation & API Reference included in package.
  • Well-documented code.
  • Console panel source code can be modified to your liking/needs or left as-is.
  • Powerful string tokenizer to detect arguments in a user's command.

FAQ

Q: Can I store a non-string value in a shell variable?

A: No, simply put a shell variable can only store a string value as they are set through the console and therefore the value inputted by the user is a string. However, the CommandArgument type provides several accessors for returning the string value as another type such as: CommandArgument.IntValue, CommandArgument.FloatValue, CommandArgument.BoolValue, and more... see the API reference relating to CommandArgument for more information.


Q: Can a shell variable contain spaces?

A: Yes! This asset comes with a powerful string tokenizer that looks for both single and double quotations to group text into a single argument. The '\' character is used as an 'escape' character to allow grouped text to contain quotations.

  • e.g: my_command "|"This is one argument\"" would have pArgument[0] == "|"This is one argument|""

Q: How do I get the value of a shell variable?

A: CommandShell.GetVariable("name") returns a CommandArgument that holds the value of the variable, or an empty string if no valid variable is found. See API reference for more information.


Quick Reference:

  • Documentation
  • API Reference
  • To set the value of a shell variable simply type the name followed by the value in the console. (e.g: myshellvariable "my shell variable's value!")
  • See screenshots at the top of the page for some code quick-references, the source code for the sample commands and shell variables is included in the package when downloaded.

Other Assets:

Editor Physics Simulator - Simulate and record physics in the editor.

Editor Animation Freezer - Freeze Animators at a specific frame in an animation.


Email any questions, bug reports, help requests, or other inquiries to intuitivegamingsolutions@gmail.com.