Skip to content

Quick start

The fastest way to see it working: in Package Manager, select DarkEffekt Terminal and import the Demo sample. Open its Terminal Demo scene and press Play. It shows one session two ways: on a monitor on a desk, and in a flat view that fills the window. The legend along the bottom lists the keys.

Key At the desk In the flat view
F8 Switch to the flat view Switch to the desk
F5 Next look: a color theme with a screen effect The same
F9, F10 Fewer or more columns; the rows fill the glass Smaller or larger cells
F6, F7 Lower or higher screen resolution Cycle a simulated DPI; return to the display’s own
F4 Lock the mouse to the view, to look around and point with its center; F4 or Esc frees it

The terminal runs a small demo shell with command-line editing and history.

Command What it shows
help The command list
colors The palette: 16 colors, 256 colors, and truecolor
ui Every interface element on one scrolling page; Tab moves focus, and Esc returns
demo A menu of showcase interfaces; demo radar opens one by name
figlet and some text Large letters
screen The screen as a prop: screen power switches it off and back on, screen damage cracks it, screen repair mends it
signal What the screen receives: signal noise 0.3 for five seconds of a noisy picture, signal glitch for a burst
screen reset, or F3 Clears every screen effect
telnet and a hostname A real host
exit Ends the shell

The monitor is the Terminal Monitor prefab, in the sample’s Monitor folder. Drag it into any scene for a working terminal with its own session. Drag its frame sideways to turn it.

To try a real host, type telnet and a hostname, for example telnet telehack.com. A port goes after the host: telnet aardmud.org 4000. Ctrl-] disconnects and returns to the shell.

Two components put a terminal in a scene:

  1. Add an empty GameObject and a Terminal Session to it. The session owns one emulator, one connection, and one renderer. Turn on Start Demo Shell to see it working before you connect it to anything.
  2. Add a screen and point it at the session:
    • Terminal Screen (3D) on a mesh (a quad works) shows the terminal in the scene. The camera’s mouse ray, or a ray you supply, points at cells. For glass, a housing, or a surface the scene lights, press Create Screen Material in its Inspector; see A screen material of your own.
    • Terminal Screen (UI) on a RawImage in a canvas shows the flat view.

Both are under GameObject, Terminal. Click a screen in Play mode to give its session keyboard focus.

To drive a session from a network host or your own program, set a connection from a script:

using DarkEffekt.Terminal;
using DarkEffekt.Terminal.Unity;
var session = GetComponent<TerminalSession>();
session.SetConnection(new TelnetConnection("your.host", 23));

See Connections for telnet, raw TCP, and hosting your own program in the same process.

Two assets set the look. A Terminal Theme on the session holds the font, colors, and cursor. A Terminal Screen Type on each screen holds the filtering and the display effect, so a desk CRT and a flat HUD can show one session two ways. Create either under Assets, Create, Terminal, or start from a preset under Theme Presets (Clean LCD, Green Phosphor, Amber Phosphor) and Screen Type Presets (Flat, Green CRT, Amber CRT, Color CRT). See Themes and screen types.