Skip to content

Unity OnGUI(IMGUI) extensions for Rapid prototyping/development

License

Notifications You must be signed in to change notification settings

fuqunaga/RapidGUI

Repository files navigation

RapidGUI

openupm

Unity IMGUI extensions for Rapid prototyping/development.

rapidgui

Installation

Install via OpenUPM

The package is available on the openupm registry. It's recommended to install it via openupm-cli.

openupm add ga.fuquna.rapidgui

Install via git URL

Add following lines to the dependencies section of the Packages/manifest.json.

"ga.fuquna.rapidgui": "https://github.com/fuqunaga/RapidGUI.git"

Install via traditional .unitypackage

Download a .unitypackage file from the Release page.

Getting Started

  • Open and checkout the RapidGUI/Example/RapidGUIExample.unity
  • see also the usage from the script below RapidGUI/Example/Scripts/

Functions

RGUI.Field()

field

value = RGUI.Field(value, label);
  • Display standard GUI according to type of value
  • Right-drag label to edit numbers
  • Color picker
  • Array/List has a right-click menu like inspector
  • Supports custom class

CustomClass

fieldCustomClass

public class CustomClass
{
    public int publicField;

    [SerializeField]
    protected int serializeField;

    [NonSerialized]
    public int nonSerializedField;

    [Range(0f, 10f)]
    public float rangeVal;

    public string longNameFieldWillBeMultiLine;
}
customClass = RGUI.Field(customClass, nameof(customClass));

RGUI.Slider()

Slider

value = RGUI.Slider(value, min, max, label);
  • Display slider GUI according to type of numbers

RGUI.MinMaxSlider()

MinMaxSlider

RGUI.MinMaxSlider(minMaxVal, minMaxRange, label);
RGUI.MinMaxSlider(ref floatMin, ref floatMax, rangeMin, rangeMax, label);
  • Display min max slider GUI according to type of numbers
  • RapidGUI defines some basic MinMax type(MinMaxInt,MinMaxFloat,MinMaxVector2...)
  • You can also create your own MinMax type by inheriting MinMax<T>

RGUI.SelectionPopup()

fold

selectionPopupIdx = RGUI.SelectionPopup(selectionPopupIdx, new[] { "One", "Two", "Three" });
selectionPopupStr = RGUI.SelectionPopup(selectionPopupStr, new[] { "One", "Two", "Three" });

RapidGUI.Fold / Folds

fold

// Initialize
fold = new Fold("Fold");
fold.Add(() => GUILayout.Label("Added function"));
fold.DoGUI();

RapidGUI.WindowLauncher / WindowLaunchers

windowLauncher

// Initialize
launcher = new WindowLauncher("WindowLauncher");
launcher.Add(() => GUILayout.Label("Added function"));
launcher.DoGUI();
  • Toggle open/close window
  • Resizable
  • Has a close button

windowLaunchers

  • WindowLaunchers automatically adjusts the layout when opening a window

And more!!!

Please check the usage from the script below RapidGUI/Example/Scripts/

Tips

A "RapidGUI" object appears in the hierarchy

RapidGUIBehaviour the object is a RapidGUI settings and update hooks. If not in the scene, it will be generated automatically.

Save/Load parameters

See PrefsGUI

Reference