Repository navigation
Home
Ilia Petrov-Komotskii edited this page Oct 12, 2026
·
22 revisions
Technical information about installation, etc. can be found in the README.md.
-
ManeStyle — framed inspectors,
ManeEditor, foldout blocks - Decorators — InfoBox, ReadOnly, Label, NonBreakingSpace, Prefix/Postfix, AvailableIf; several can share one field
- Property Drawers — DropdownList, item names, LayerSelector, LimitedField, EasingCurve; one drawer per field
- EditorButton — inspector button for a method (EasyButtons alternative)
- Serializable DateTime — UTC date types and calendar popup
-
Interface Serialization —
SerializeInterfacevsInterfaceOnly -
Color Tools — window, HSL/luma/hex,
Color/Color32helpers - Editor Tools — overlay, freeze, screenshot, reference finders, script templates, hotkeys
-
Singletons —
UnitySingletonandScriptableSingleton - Components — followers, state sync, state change detector
-
ParticleSystemUIScaler — scales a particle emitter size and count by a
RectTransformsize - Animator — randomizer, parameter reset, animation events
-
Easing — unit
AnimationCurvepresets (SinIn,ExpoOut, bounce, elastic, …) and theEasingCurveinspector dropdown -
Random —
UnityRandom, points, colors, and directions -
HistoryCache —
Vector2HistoryCacheandVector3HistoryCache - Extensions — GameObject, Transform, Rect, Vectors, and Scene helpers
-
Yield and Async — Yield instructions,
MainThreadDispatcherand Extensions
Inspectors and editor windows in this package use UI Toolkit. Legacy IMGUI (OnGUI, EditorGUILayout) support was dropped on purpose.
IMGUI is immediate mode: Unity calls that method for layout, repaint, and every mouse or key event, and the method draws the whole GUI each time.
UI Toolkit is retained mode. The element tree is built once and stays up until the data changes.
If you are still using IMGUI, you should stop and move to UI Toolkit. That is why:
-
The hierarchy is a document. UXML describes the tree and the reusable templates. In IMGUI the hierarchy is whatever
GUILayoutcalls happened to run on that event. -
The look is a stylesheet. USS is a CSS subset: flexbox, selectors, and states such as
:hoverand:disabled. Changing the layout does not mean rewriting the control. IMGUI keepsGUIStyleobjects in the same method as the logic. -
A callback runs when something happens. A click or a value change is an event.
if (GUILayout.Button(...))sits insideOnGUI, so the same block can run several times per interaction unless you filterEvent.current.type. -
Showing or hiding a field is safe. IMGUI layout breaks when the number of controls changes between the layout pass and the repaint pass (
Getting control 0's position in a group with only 0 controls). UI Toolkit adds and removes elements on the tree. - The live UI can be inspected. The UI Toolkit Debugger shows the element hierarchy and which USS rules applied. IMGUI has no element tree to inspect.
-
One control serves many inspectors. A
VisualElement, a UXML template, and a shared stylesheet are reused. ManeStyle is that shared chrome: framed blocks and a fixed label column, without a customOnGUIon every component. - Decorators stack on one field. Unlike property drawers, they can be combined on the same field, and each one adds its own behavior.
Runtime and editor code for the same feature are documented together.
Package id: com.manefunction.tools-unity.
openupm add com.manefunction.tools-unity