An open API service indexing awesome lists of open source software.

https://github.com/barionlp/unityconsole

A Unity Runtime Console using UI Toolkit
https://github.com/barionlp/unityconsole

unity

Last synced: 8 months ago
JSON representation

A Unity Runtime Console using UI Toolkit

Awesome Lists containing this project

README

          

# UnityConsole
A Unity Runtime Console using UI Toolkit

## Usage
- requires Unity UI package (UI Toolkit)
- new input system recommended
- install Unity Console package https://github.com/BarionLP/UnityConsole.git
- add the ConsolePrefab to your scene

### Add Messages
```csharp
ConsoleManager.AddMessage("message");
ConsoleManager.AddMessage("message"); // 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
```csharp
// 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
```csharp
// implement IConsoleHandler
public sealed class CustomHandler : IConsoleHandler
{
// whether the prefix should be removed before calling Handle
public bool PassPrefix => false;

public void Handle(ReadOnlySpan input)
{
// whatever you want
}

// optional
public string GetHint(ReadOnlySpan 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 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