Skip to content

BarionLP/UnityConsole

Repository files navigation

UnityConsole

A Unity Runtime Console using UI Toolkit

Usage

Add Messages

ConsoleManager.AddMessage("message");
ConsoleManager.AddMessage("<color=yellow>message</color>"); // rich text support 
ConsoleManager.AddWarningMessage("warning");
ConsoleManager.AddErrorMessage("error");

Hide and Show

ConsoleManager.Hide()/ConsoleManager.Show()
The ConsoleToggle component handles hiding and showing the console
You can listen to ConsoleManager.OnShow and ConsoleManager.OnHide

Input Handlers

by default the console just prints input messages

// override the default handler
ConsoleManager.OverrideDefaultHandler(new ConsoleMessageHandler(input => {}));
// registering other handlers
char prefix = '/'; // inputs staring with this prefix are handed to this handler
ConsoleManager.RegisterHandler(prefix, new ConsoleMessageHandler(input => {}));

Custom Handlers

// implement IConsoleHandler
public sealed class CustomHandler : IConsoleHandler
{
    // whether the prefix should be removed before calling Handle
    public bool PassPrefix => false;
    
    public void Handle(ReadOnlySpan<char> input)
    {
        // whatever you want
    }

    // optional
    public string GetHint(ReadOnlySpan<char> input)
    {
        // displays a hint above the text input, can be empty
        // runs whenever the input changes, so be performace aware 
    }

    // optional
    public string GetAutoCompleted(ReadOnlySpan<char> input)
    {
        // called when tab is pressed
        // return the completed string or empty
    }
}

Tipps

If you want to run commands from this console consider using https://github.com/BarionLP/CommandSystem with https://github.com/BarionLP/UnityConsoleCommandIntegration

About

A Unity Runtime Console using UI Toolkit

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta

Stars

Watchers

Forks

Languages