Windows And Widgets (Extendable window system on Unity UI; Based on MS WinForms.NET)

News:
A YouTube video showing the Inherited Properties and Skinning features has been published!

Summary:

Hello guys.

I’m so excited to announce that I was working on a secret project for a long time and it’s not a secret anymore. It’s a framework and the name is “Windows and Widgets” (WaW). Well, it’s still in early development phase but I got the sub-systems up and running and proved the concept so it’s a real thing now!!!

Basically, it is an extensible windows system with skin and ambient properties support. It’s NOT another custom UI system. We all love the new Unity UI system and Windows and Widgets framework runs on it just like .NET WinForms API runs on Windows operating system’s GUI API.

I am planing to publish it on asset store soon as development alpha version. It will be for free during very long development process. If you get it during this period, you will own it for free when it’s released as a paid product. I hope you guys like it and give me feedback.

Documentation

Features

  • WaW utilizes the new Unity UI system. It’s NOT another custom UI system.

  • Its design is based on .NET WinForms class library and optimized for Unity.

  • Pure class library design:

  • Every UI class inherits from a pure “Widget” class instead of MonoBehaviour so they don’t have all those garbage class members of MonoBehaviour.

  • WaW provides only one regular Unity component to drive all its widgets and it’s called WidgetDriver.

  • Extensibility: Users can implement their own widgets and WidgetDriver system just supports them.

  • WaW has skin support. The entire window system or a single widget can be skinned with different visuals and metrics.

  • WaW supports inherited properties. Inherited properties can contain their own values at the widget level or they can inherit the values from parent widgets.

  • Template widget system: You can create multiple instances from a temple widget (Ex: a messagebox window). This is similar to Unity’s prefab system but it’s more convenient. You can even store the templates in the scene which you can’t do with prefabs.

  • WaW’s custom serialization system supports:

  • Real C# properties instead of Unity public fields in Unity inspector. The system also has design time support so you can know if the property is called in play mode or in edit mode.

  • User types (Which Unity can’t serialize)

  • No depth limit unlike Unity serializer which has depth limit of 7.

  • Custom inspector editor (Support for inherited properties)

  • WaW includes and utilizes Magic Auto Linker which is also available as another product. MAL allows scene objects to be linked to reference fields of other objects automatically so that the game developers who are working on Unity editor don’t have to drag and drop hundreds, maybe thousands of objects in a Unity projects.

Here is the introduction video of Windows and Widgets:

Edits:
2022-02-21: The old sneak-peak video is moved to the next post to make way for the new introduction video.
2017-07-30: Updated the features section.
2017-06-21: Updated the features section for expanding template system from window to all widgets.
2017-06-05: Updated the features section.
2017-01-07: Added features and documentation link.

This was the “first look” video which was published years ago.

*** PAUSE to read the captions. Sorry but this is my first video edit ***

Reserved post

PAUSE!!!?
Even playing at 2xSpeed, that was painfully slow to watch. :stuck_out_tongue:

BUT!
I did watch it :wink:

Looks very interesting. Good luck with the development. I’ll be watching this space :slight_smile:

[I had to put in all those smiley faces just so you wouldn’t get mad at me for saying your video was too slow LOL]

Hehe. Thank you for watching. I figured out a way to slow the video down on YouTube so pause is not necessary anymore :slight_smile:

P.S. I love smileys :slight_smile:

Wowowowowow! How does will this handle aspect ratio changes? I’ve not used winforms before, so I need to ask what about it inspired you to create this?

Do you mean the aspect ratio of my window object? The window has a hidden child called Frame and the frame has an image on it. Frame’s rect transform is maximized to the parent’s corners. If you resize the window, frame will be resized automatically.

WinForms is a framework which you can build Windows applications which consist of windows and visual components. It’s similar to designing a UI on new Unity UI system but much better and more complete. Some games have simple UI design and some have advanced window systems for their addon support. WOW and Wildstar has a huge window system which you can program via LUA. I hate LUA and I always wanted to have (or develop) a C# addon system. For this I need two main components. 1) Ability to compile C# on the fly. 2) A window system similar to WinForms. So, I started to develop Windows And Widgets projects to have a window system in Unity.

The project is not dead. It’s just going very slowly.

The new video:

A new YouTube video showing the Inherited Properties and Skinning features has been published!