Hey all, this is a library I wrote to aid in the development of Unity GUIs (the legacy kind that KSP still uses). I started on it years ago, but it fell by the wayside as work became more important. Recently I decided to finish it and release it for the KSP community. When I first started using Unity about 5 years ago, I couldn't stand the way the GUI system was designed. I was used to the declarative model and rich data binding capabilities of frameworks like WPF, so I set out to design my own in Unity. This is the result. Features Declarative UI – specify what you want your GUI to do, the framework takes care of the rest. No minutia of plumbing values in and out of GUILayout calls. Rich data binding without a big performance impact. Unlike WPF, there is no reflection, only function calls. Skin and style support Full set of controls wrapping existing Unity controls, plus new controls such as TabControl Floating tool tip rendering Interoperable with any existing GUI code No fancy confusing magic, easy to read code It's really, really easy to build very complex GUIs and new controls with this library. I put together a short example of the basic capabilities:
It's pretty flexible and powerful, and there's still a lot I could add. I'm unsure, however, of the future value of this project given that KSP will be migrating to Unity 5. But maybe it will be useful for legacy projects. If you think this is useful, please let me know! I'll continue to work on this project and support it if people are interested. There are more features that could be added, as well as documentation and tests. Project on GitHub Releases, example project, and information on how to build can be found here: https://github.com/mattolenik/AffinityUI