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.
Each screen shows its own counts of quads, elements and draw calls, as measured in the editor.
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.
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.
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.
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.
- Unity 6000.3 (Unity 6.3) or later
- Universal Render Pipeline (URP)
- Vulkan, Metal or Direct3D 11 / 12 (OpenGL ES is not supported)
Open the Package Manager, choose Install package from git URL... and enter:
https://github.com/ruccho/YAUI.git?path=/Packages/com.ruccho.yaui#release
See the documentation for the manual and the API reference.
MIT. The flex layout engine is based on the C# port of Yoga in Microsoft.UI.Reactor; see Third Party Notices.





