C# MIT

RosettaUI

Code-based UI library for development menus for Unity

F

fuqunaga

Dernière activité 7 mai 2026
fuqunaga/RosettaUI

582

étoiles

30

forks

4

issues ouvertes

debugdevelopmentmenuuiuitoolkitunity

Ce README est souvent en anglais.

RosettaUI

npm version openupm

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)
            )
        );
    }
}

✨ Features

  • Undo/Redo surpport (runtime only)
  • Inspector-like visual editor for Gradient and AnimationCurve at runtime
  • Inspector-compatible Copy and Paste

    copyandpaste


🔄 Ver1 → Ver2 Migration

Please remove the RosettaUI.UIToolkit package from the Package Manager.
In Ver2, the RosettaUI.UIToolkit package is now included in the RosettaUI package.

Keyboard.current.onTextInput

If you are using Keyboard.current.onTextInput, be aware that it now also fires during UI operations..
Consider using KeyControl (e.g., Keyboard.current[Key.A].wasPressedThisFrame) as an alternative.


⬇️ Installation

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> fuqunaga > RosettaUI and click the Install button


Input System (optional)

RosettaUI recommends using Input System.
See Tips.

Install according to the official documentation.
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.5/manual/Installation.html


🚀How to use

  1. Add Packages/RosettaUI/UIToolkit/Runtime/RosettaUIRootUIToolkit.prefab to the Hierarchy.
  2. Write code to generate an Element instance.
  3. Call RosettaUIRoot.Build(Element) to generate the actual UI (see ExampleSimple).

👉 Examples are available in this repository.
We recommend downloading and checking it out.


💻 Environment

Platform Support
Windows ✔
Mac Maybe (not tested)
Linux Maybe (not tested)
IL2CPP Not supported

💡️ Tips

Disable input when UI focused

During UI operations, input to the application is suppressed by replacing the keyboard, pointer, and mouse devices with dummies.

// false while RosettaUI focused
if ( Keyboard.current[Key.A].wasPressedThisFrame )
{
    // do something
}

Warning

the Keyboard.current.onTextInput event will still be called.

For LegacyInputSystem, refer to RosettaUIRoot.IsFocused().

if ( !RosettaUIRoot.IsFocused() && Input.GetKeyDown(KeyCode.A) )
{
    // do something
}

Custom Undo/Redo

Users can register custom Undo/Redo actions.
For details, try running ExampleUndo.


🔎 Related Libraries

PrefsGUI - Accessors and GUIs for persistent preference values using a JSON file

Projets similaires

Source code for the Unity UI system.

C#
UUnity-Technologies
1,6 k étoiles324

Hierarchical debug menu system for Unity that makes it easy to create intuitive and organized debug menus.

C#
HHaruma-K
579 étoiles40

The Unity UI library of controls, components and other useful features for extending the Unity UI solution for Unity

C#unity-packageunity3d
UUnity-UI-Extensions
1,7 k étoiles190