Services

Unity · UI design & implementation

UI Toolkit or uGUI. Whichever your project needs.

Runtime UI in UI Toolkit with UXML and USS, or uGUI with prefabs and canvases where the project already lives there. Structured so a team can extend it without us.

UI ToolkituGUIUXML & USSC#Shader Graph for UI

What we do in Unity

Built the way the
engine expects.

Native frameworks, used as intended, so your engineers inherit something familiar.

Component library

Custom VisualElements or prefab variants for every component, with states driven by classes rather than one-off scripts.

Styling as tokens

USS variables for colour, type and spacing, so a re-skin or a platform variant is a stylesheet change.

Navigation

Input System actions, explicit focus order, and device-aware button prompts that swap when the player changes input.

Performance

Canvas splitting, batching and atlas discipline on uGUI; panel settings, usage hints and profiler passes on UI Toolkit.

In code

The same component,
in Unity.

The same component in every runtime: a health bar whose ghost segment waits 450 ms, then drains over 600 ms. It is the bar running in the demo at the top of this page.

HealthBar.csC# · UI Toolkit
// Layout in UXML, look in USS. The ghost trails through a USS transition:
//   .health-bar__ghost--trailing { transition: width 0.6s ease-out 0.45s; }
[UxmlElement]
public partial class HealthBar : VisualElement
{
    readonly VisualElement fill = new() { name = "fill" };
    readonly VisualElement ghost = new() { name = "ghost" };
    float target = 1f;

    public HealthBar()
    {
        AddToClassList("health-bar");
        Add(ghost);
        Add(fill);
    }

    public void SetHealth(float pct)
    {
        pct = Mathf.Clamp01(pct);
        bool damage = pct < target;
        target = pct;

        fill.style.width = Length.Percent(target * 100f);
        ghost.EnableInClassList("health-bar__ghost--trailing", damage);
        ghost.style.width = Length.Percent(target * 100f);

        if (!damage) return;
        AddToClassList("is-hit");
        schedule.Execute(() => RemoveFromClassList("is-hit")).StartingIn(120);
    }
}

A trimmed sample to show structure and approach. Compare all five runtimes →

Covered as standard

  • Unity 6 and 2022 LTS
  • UI Toolkit and uGUI
  • Input System
  • Addressables-friendly UI assets
  • Safe areas and aspect ratios, mobile to ultrawide
  • TextMesh Pro and localisation

Other runtimes

The design travels.

The design system and motion spec stay the same. Only the implementation changes.

Unity

Show us the build.

Send a screenshot, a recording or a build, with your target platforms and dates. You will get a straight answer on fit and scope.