Skip to content

Unity OnGUI(IMGUI) extensions for Rapid prototyping/development

License

Notifications You must be signed in to change notification settings

finikigames/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

Serializing but ignoring in RGUI.Field

With this attribute you can serialize field by Unity to change some values from editor, but can hide this field in RGUI.Field for some reasons, for example, perfomance (Suitable for long List's)

public class GameConfig
{
    public float unitSpeed;
    [RGUIIgnore]
    public List<UnitConfigInfo> unitConfigs;
{
    

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

About

Unity OnGUI(IMGUI) extensions for Rapid prototyping/development

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%