← Back
ruccho

ruccho/YAUI

Yet Another Unity UI: a fast, Flexbox-based UI system on GameObjects.

View on GitHub ↗http://ruccho.com/YAUI/ ↗
Stars
74
Forks
4
Watchers
74
Open issues
1
Contributors
1
Language
C#
License
MIT License
Default branch
main
Created Sep 25, 2026Updated Oct 1, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

YAUI

Yet Another Unity UI: a fast, Flexbox-based UI system for Unity,
built on GameObjects.

Releases

English | 日本語

YAUI - Yet Another Unity UI

Why YAUI?

Unity's uGUI works with Prefabs, Animator and the Inspector, but is slow: meshes are rebuilt and batched on the main thread, layout groups are expensive, and custom shaders break batching. UI Toolkit is fast, but it is separate from GameObjects.

YAUI keeps the GameObject authoring model and drops compatibility with uGUI to get the performance of a modern UI engine.

A raid battle HUD over a 3D scene
Battle HUD: hundreds of damage numbers, world space nameplates, particles and custom shaders.
An analytics dashboard
Dashboard: a scrolling table of 240 rows, charts, and working controls.
An RPG inventory and equipment screen
Inventory: a grid of 352 slots with icons packed into the dynamic atlas.
The shop of a mobile game with a gacha banner and a battle pass
Shop: a banner cut to a slanted shape by a mask, gradients and a reward track.

Each screen shows its own counts of quads, elements and draw calls, as measured in the editor.

Fast

Every box, image and glyph is a quad in a GPU buffer, drawn in one draw call per panel. Rounded corners, borders, drop shadows and SDF text are all drawn by one uber shader, without breaking the batch. Text generation and layout run as jobs on worker threads, and a frame without changes costs almost nothing.

Time added by the UI per frame on a Pixel 5: YAUI, uGUI and UI Toolkit

The same screens built with YAUI, uGUI and UI Toolkit, measured on a Pixel 5. YAUI has the lowest main thread cost in most scenarios; its GPU cost is about the same as uGUI's to 1.5 times. See the benchmarks for the details.

Advanced layouts

Flexbox layout with a port of Yoga, computed with Burst. Boxes with a fixed size are layout boundaries, so a change only lays out the part of the tree it affects.

GameObject-based

Elements are components on GameObjects: use Prefabs, Animator, Timeline and the Inspector as usual. Input goes through the EventSystem, and panels can be drawn over the screen or in world space.

Note

YAUI is experimental. Breaking changes can be made before the first stable release.

Requirements

  • Unity 6000.3 (Unity 6.3) or later
  • Universal Render Pipeline (URP)
  • Vulkan, Metal or Direct3D 11 / 12 (OpenGL ES is not supported)

Installation

Open the Package Manager, choose Install package from git URL... and enter:

https://github.com/ruccho/YAUI.git?path=/Packages/com.ruccho.yaui#release

Documentation

See the documentation for the manual and the API reference.

License

MIT. The flex layout engine is based on the C# port of Yoga in Microsoft.UI.Reactor; see Third Party Notices.