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/com.unity.inputsystem@1.5/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













