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.prefab
in the Hierarchy - Write code to generate
Element
instance - 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