Code-based UI library for development menu for Unity
public class ExampleSimple : MonoBehaviour
{
    public string stringValue;
    public float floatValue;
    public int intValue;
    public Color colorValue;
    
    void Start()
    {
        var root = GetComponent<RosettaUIRoot>();
        root.Build(CreateElement());
    }
    Element CreateElement()
    {
        return UI.Window(nameof(ExampleSimple),
            UI.Page(
                UI.Field(() => stringValue),
                UI.Slider(() => floatValue),
                UI.Row(
                    UI.Field(() => intValue),
                    UI.Button("+", () => intValue++),
                    UI.Button("-", () => intValue--)
                ),
                UI.Field(() => colorValue)
            )
        );
    }
}This package uses the scoped registry feature to resolve package dependencies.
Edit > ProjectSettings... > Package Manager > Scoped Registries
Enter the following and click the Save button.
"name": "fuqunaga",
"url": "https://registry.npmjs.com",
"scopes": [ "ga.fuquna" ]
Window > Package Manager
Select MyRegistries in Packages:
Select RosettaUI - UI ToolKit and click the Install button

RosettaUI recommends using Input System.
See Tips.
Install according to the official documentation.
https://docs.unity3d.com/Packages/[email protected]/manual/Installation.html
- Put Packages/RosettaUI - UIToolkit/RosettaUIRootUIToolkit.prefabin the Hierarchy
- Write code to generate Elementinstance
- Call RosettaUIRoot.Build(Element)to generate the actual UI ( Example )
Examples are available in this repository. I recommend downloading and checking it out.
Please check the Examples
| Platform | Support | 
|---|---|
| Windows | ✔ | 
| Mac | Maybe(not tested) | 
| Linux | Maybe(not tested) | 
| IL2CPP | Suspended | 
| UI Library | Support | 
|---|---|
| UI Toolkit | ✔ | 
| UGUI | Suspended | 
| IMGUI | Not planned | 
When using InputSystem, set RosettaUIRoot.disableKeyboardInputWhileUITyping=true (default) to disable keyboard input while typing in UI.
// false while typing in UI
if ( Keyboard.current[Key.A].wasPressedThisFrame )
{
    // do something
}For LegacyInputSystem, refer to RosettaUIRoot.WillUseKeyInputAny().
if ( !RosettaUIRoot.WillUseKeyInputAny() && Input.GetKeyDown(KeyCode.A) )
{
    // do something
}PrefsGUI - Accessors and GUIs for persistent preference values using a JSON file













