Back to projects

Ghost Commands

A Unity Editor tool sold on the Asset Store. 30+ sales, 200+ downloads, 5-star average rating.

Nov. 2023 - Feb. 2024

Unity
C#
Editor Scripting
Unit & integration tests

What is it?

A developer console for Unity. Slap a [Command] attribute on any method or property, and you can execute it from a command field in the editor and in-game. No setup required. It was born out of wanting a faster way to test and debug during game development.

  • Turn any method or property into a command with a single attribute
  • Works in both the editor console and in-game
  • Suggestions and auto-completion with keyboard navigation
  • Supports static and non-static methods, overloads, and optional parameters
  • Add and remove commands dynamically at runtime
  • Modern UI built with UI Toolkit, fully customizable

Architecture

Built around a custom parser that tokenizes command strings, a registry that discovers commands at startup, and an extensible framework where users create new commands by implementing a simple interface. I focused on breadth, implementing most of the 15+ built-in commands (camera, physics, scene, fog, lighting, player prefs, and more) through the same public API our users get.

Testing & CI

Some bugs only showed up on specific Unity versions, a fix that worked in 6000.2 could break in 6000.4. Catching that meant manually spinning up a fresh project, installing the package, and retesting every version by hand. I built a pipeline to automate it instead: every push to main runs the test suite I wrote across six Unity versions in parallel, so version-specific breaks get caught before an update ever ships.

  • 110 tests covering command parsing, string conversion, and every built-in command
  • Runs in parallel across 6 Unity versions on every push to main (our release branch), 660 test runs per pipeline
  • Wrote a script to convert Unity's NUnit output into JUnit, so GitLab can parse and display results natively
  • Per-version Library caching keeps each job under 8 minutes
  • Code coverage tracked on every run

Asset Store Results

We published it at $40/copy and handled the full lifecycle: documentation, store submission, customer support, bug fixes, and updates.

  • 30+ copies sold, 200+ total downloads
  • 41 favourites, 1,608 page views
  • 5-star average rating
  • Active support and updates based on user feedback