For making in-game UI your best option is Unity’s own UnityUI paired with Flexbox4Unity, allowing you to use modern CSS3/Flexbox layouts within Unity’s UI system, with RectTransforms etc working seamlessly together (but without all the problems of ContentSizeFitter not working, broken VerticalLayoutGroups, etc).
But… to make custom Editors/EditorWindows/Inspectors, UnityUI won’t run.
Fortunately, Unity’s new UIToolkit system – designed specifically for making Editor UI / Editor scripts – also uses Flexbox internally! It’s very fast to make Editor UI, and thanks to Flexbox it’s easy to make them look good. For all my in-game UI I now use Flexbox4Unity, and for all my UnityEditor UI I use UIToolkit.
But … there is almost no documentation, and the few docs that exist mostly push you (incorrectly) to create lots of unnecessary files, slowdown your workflow, and avoid using C# scripts. UIToolkit is much better than people think it is, once you know how to use it correctly.
So … here’s my tutorials explaining how to build Editor GUIs in Unity, using only the modern APIs.
- Tutorial 1: Essential concepts in UIToolkit and Flexbox
- Tutorial 2: How to create a new EditorWindow or Custom Inspector with UIToolkit
- Tutorial 3: Labels and Basic Styling
- Tutorial 4: Buttons and clicking
- Tutorial 5: Clickable Labels and Interactive Styling
- … more coming soon.