Create a complex UI in Godot

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By btschumy

I have a 3D scientific visualization app for iOS and macOS that uses SceneKit. I am trying to make a version for Windows and Android and am wondering if Godot will permit me to make a semi-complex UI around the 3D graphics view. On iOS, it has many of the standard UI elements. There are table views with various types of table cells (text, icons, and occasional slider). Tapping some table view cells will slide in a new view with further elements.

There is a Find UI that allows you to enter the text to find along with various controls to filter the search. Among them is a Picker that allows you to select from a list of 80 object types.

Originally I started writing the Android / Windows app using Xamarin and UrhoSharp. However, I’ve run into enough problems in UrhoSharp to make this unfeasible. UrhoSharp has been killed off by Microsoft so I can’t expect any of my issues to be fixed.

So now I’m considering creating the UI from within the game engine itself. I’d it reasonable to expect to be able to create the complex UI using the Godot set of controls?

Just want to throw this blog post in (it’s more of pitch, but maybe you can extract some useful info to help decide):

You might be better off using web technology for that.

omggomb | 2020-11-14 08:52

:bust_in_silhouette: Reply From: CharlesMerriam

I also came to Godot for creating complex UI.

In general, most of the controls you want will be Control elements. I’m not sure quite what you are asking for in specific.

You want to check out the the ‘tool’ keyword and tutorials. By making a ‘tool’, you can script a UI that updates on your design screen. For example, I have a “Menu” tool that has a property which is a list of menu buttons. It takes care of fixing up names, connecting new menu items, and so on.

The documentation is a bit thin and there is a tendency for people to make videos rather than small examples or well written prose. It will be important to keep a notebook for trivia you might normally expect to look back up later.

I have not found a well organized set of widgets and instead a feeling of ‘roll-your-own’. While a ‘list picking with filter’ implementation does exist when you type in ‘add widget’, I expect it is tossing custom signals back and forth to make it happen.

Sorry for the ramble; I don’t know quite what you ask.