NOTICE: Version 4.1 has been approved and is now on the Asset Store.
NOTICE: The GUI Editor Free Edition is now on the Asset Store. Find out more here.
The GUI Editor is a Visual GUI Editor and Code Generator that can be used to create in-game and editor interfaces without writing any GUI code. More time can be spent writing functional reactions to input, and GUIs can be polished later during development. The GUI Editor has the ability to generate code files in C# and UnityScript, and will be receiving updates to improve the control and output of generated code.
The video below shows the previous version (3.2), but here is a screen cap of the new editor in its final form.
This is a small demonstration of the GUI Editor in action. See the video’s description for more details.
The GUI Editor is on the Asset Store for 30 USD. If you have any questions, suggestions, criticisms, etc. contact me at eddy.ews@gmail.com, PM me here, or reply in this thread. Thank you.
For those who want access to the source, you can send me your invoice (at eddy.ews@gmail.com) for a zip containing the source. Also, the DLLs are not obfuscated, so you can also get the code directly from them if you have the tools for it.
That was the original goal for GUI Editor, but the whole reason I wrote the tool was to remove the hassles of GUI code (primarily the building and rebuilding of the solution when little changes must be made to the GUI) entirely. The idea is that the GUI aspect of the code isn’t in the way of the functional aspect of the code. So you can write a menu system, and handle scene changes or settings or player inventories without worrying about whether the GUI is drawing correctly, and if you need to change the appearance of the GUI you don’t have to change any code. Just open the editor, drop in the GUIAsset you want to change, and swap skins, or resize buttons, or whatever you need to do.
I have been considering adding code generation back as an alternative to the base system. Thinking about it now, I might be able to make it work. I’ll look into it today, and if it works, I’ll update GUI Editor immediately (there is nothing wrong with having more features! ).
The current price is based on the Asset Store Submission Guidelines, which states ranges of prices based on the size or complexity of the extension. If I need to lower the price to increase sales, I will do so in time. Thank you for your input.
Part of that may be that my sample images don’t show real GUI systems. I made quick GUIs during testing, and they ended up going into the screen shots (a poor decision, I admit). The other part is that the GUI Editor currently only has the default controls from UnityGUI. I will be preparing more, and I welcome developers who like the GUI Editor to write their own control packs for it. If there are any features you would like to see, let me know and I’ll see what I can do. ;D
The GUI Editor is getting a major face lift with the next update! We expect to release GUI Editor 2.0 in the next couple of weeks.
[UPDATE]
Some features I wanted to work in aren’t possible with the current system (a combination of my tools and Unity itself). However, many features are still possible, and a lot has changed already. I look forward to sharing the new feature set with you all soon.
[UPDATE 2]
Here are some of the new features I have implemented:
A grid can be enabled for lining up controls.
Align manual-layout controls to edges/center of their containers.
Nudge manual-layout controls with the arrow keys. Hold control to move them along the grid.
Force a manual-layout control to stretch to fill its container.
GUIAssets now have a Position, and can be used as Windows, Boxes, or Groups.
Copy/paste controls.
Context Menus for many operations in the toolbox and canvas windows.
There are a handful of other new features to look forward to. The new GUI Editor is expected to be submitted in the next week or so. In the coming days I will post new screens.
GUI Editor 2.0 has been submitted to the Asset Store, and is awaiting approval.
GUI Editor has gone through a lot of changes. In 2.0, you can now edit multiple GUI Assets at one time, move and resize Manual Layout controls with the arrow keys, use easy-access toolbar buttons and context menus to do almost every task in the editor, including adding controls to the GUI Assets. You can now use grids to line up GUI Assets and controls. The properties panel has been replaced by the Inspector, making it easier to create custom control editors. You can now copy/paste controls, and export controls for reuse. Check out the new manual linked in the top post to see what it’s like to work in the new editor.
The Epic Win Society GUI Editor 2.0 has been accepted to the Asset Store! It can be found here. Check out the main post for a link to the updated Manual and more information!
The GUI Editor is still on sale for 75 USD. This sale will end soon!
=== === ===
2.0 introduces many new features, including moving controls in the GUI Editor Canvas, grids for aligning controls, quick-align buttons, and a redesigned layout that utilizes the Inspector, keeping the canvas clean.
I’ve begun work on the next version of the GUI Editor. In 2.x there were several limitations that resulted from the initial design of the GUI Editor Canvas, the ControlBase class, and the ControlManager class. I am starting from the ground-up to make the system more flexible and easier to use. I am adding animated controls and Code Generation. I have not determined how complex the Code Generator will be, but so far my goal is to include at least a MonoBehaviour generator, but I am looking into a Template system.
I am planning to have the next GUI Editor out by the end of March at the latest. There is still time to use the 2.1 system to make code-free GUI systems to implement into your scripts. Although it will be impossible to transfer old systems into the new system directly, you will be able to recreate any GUI that is currently possible in 2.1.
The simple answer is that every component is responsible for generating its own string of code. My editor checks each component’s fields for the fields with a particular attribute, which contains some data used during generation. These fields will automatically generate some code that will go directly into the class file as class variables. The names of these variables are then planted into the components’ code strings.
Because Code Generation is now a fully integrated part of the system, it is a little harder to add components, as each one needs to override the code gen method, but it’s basically like writing the OnGUI method twice. And new kinds of components can be added, such as Event components, that only generate code, but have no visual representation (hence the change from the name “control” to “component”).
It might sound complicated, but it’s still less work than writing CodeDOM generation since all the hard work is done by the Field Generators.
The new version will not be in DLLs, so anyone who buys the editor will be able to look at all of the code. It might not be commented out all the way upon release, but I will make sure it gets finished as I write the expansions (Component Packs and GUIAsset types). On top of that, I try to have a thorough manual at launch that explains every facet of the editor so that anyone can at least make small additions to the editor.