UMU
Modular tools for Unity
Version 1.0.0 · UpcomingUMU is a collection of independent, editor-integrated modules that automate common, repetitive Unity tasks: panel and popup UI, audio, saving, messaging, logging and build settings. Use the whole package or only the modules you need.
The Asset Store page is in preparation; the link goes live on release day.

What you get
GUI Manager
A panel and popup framework on top of Unity UI. Prefab-based panels, navigation history with a built-in back function, popup layers with a waiting queue and Android back button handling. Transitions run without an Animator, with an optional DOTween engine.
Audio
A central runtime audio system with an AudioManager singleton, SFX pooling and music crossfade. Mixer routing ducks the music under voice and SFX, and per-channel volume and mute settings are saved automatically.
Common + Utility
The shared foundation of the other modules: a versioned JSON save manager with optional AES encryption, inspector attributes, reflection and asset helpers and Newtonsoft-based serialization.
All modules
GUI Manager
Panel and popup framework on top of Unity UI. Prefab-based panels with automatic constant generation, navigation history with a built-in back function, popup layers with a waiting queue, Android back button handling, input blocking during transitions, fade/slide/scale transitions without an Animator (optional DOTween engine if DOTween is in your project), safe-area fitting, a Panel Overview window and a Panel Optimizer tool.
Audio
Central runtime audio system: AudioManager singleton, SFX pooling with pitch variation, music crossfade, mixer routing with automatic music ducking under voice and SFX, UI sounds, button and panel open/close sound bridges, extendable string-based sound categories, and per-channel volume and mute settings that are saved automatically.
Common + Utility
Shared foundation: versioned JSON save manager with optional AES encryption, inspector attributes ([Button], [ShowIf], [ReadOnly], [Required]), reflection and asset helpers, Newtonsoft-based serialization, rich-text helpers, Simplex noise and list shuffling.
Messenger
Message broadcasting between components and scenes with a defined lifetime (indefinite, current scene, next scene), typed payloads and push-style subscriptions that unsubscribe through IDisposable.
Logger and Debug Mode
Unified logging layer with a dedicated console window, log levels, an in-game debug console, an FPS counter, a screenshot key and a zero-scale transform scanner. Debug features compile only in the editor and development builds.
Internet Checker
Asynchronous, non-blocking connectivity check with a configurable host list.
Hardware Detector
Rule-based device tier evaluation (GPU, CPU, RAM, resolution, iOS generation) with optional Unity quality level application.
Android Manifest Editor
Graphical AndroidManifest.xml editor with a validation button for Android 12 to 14 rules.
Xcode Settings Editor
Edit Xcode project settings inside Unity for iOS builds.
Audio Cutter
Cut audio clips inside the editor with a wizard and an asset context menu.
Package Exporter
Export modules as .unitypackage files.
Resource Checker
Third-party public-domain scene memory audit tool (attribution below).
Requirements
- Unity
- Unity 6000.3 or newer (maintained and tested on 6000.3.20f1)
- Required packages
- Newtonsoft Json (com.unity.nuget.newtonsoft-json), Input System (com.unity.inputsystem), Unity UI (com.unity.ugui). Not bundled with the package.
- Delivery
- Precompiled assemblies: UMU.dll (runtime) and UMU.Editor.dll (editor only), prefabs, assets, demo scenes and documentation. No C# source code; demo scripts are readable .cs.txt files.
- Tested
- Developed and tested on Windows; the runtime part is tested on Android (IL2CPP, ARM64 phone and x86_64 emulator).
Code example
// Messenger: subscribe with automatic unsubscribe
using (UMU.Messenger.Messenger.Instance.Subscribe<int>("score", v => Debug.Log(v)))
{
UMU.Messenger.Messenger.Instance.SendMessage("score", UMU.Messenger.Message.Lifetime.ActualScene, 42);
}
// Internet check
UMU.Net.InternetChecker.Instance.IsConnected(ok => { if (ok) LoadOnlineContent(); else ShowOfflineNotice(); });
// Versioned save with optional encryption
JsonSaveManager.Save("save1", data, version: 1, encryptionKey: null);
var loaded = JsonSaveManager.Load<MyData>("save1", out int version);
Frequently asked questions
Which Unity version do I need?
Unity 6000.3 or newer. It is maintained and tested on 6000.3.20f1.
Is the source code included?
No. The package ships as precompiled assemblies (UMU.dll and UMU.Editor.dll) with prefabs, assets, demo scenes and documentation. Demo scripts are included as readable .cs.txt files.
Can I use only some modules?
Each module works on its own, but most build on the Common module, so import it first.
Which packages must I install?
Newtonsoft Json (com.unity.nuget.newtonsoft-json), Input System (com.unity.inputsystem) and Unity UI (com.unity.ugui). They are not bundled.
Does it need DOTween?
No. DOTween is optional and detected at runtime; without it the built-in transition engine is used.
Is there a demo?
Yes, the full package includes demo scenes (Audio demo, GUI Manager 2D and 3D, Logger, UIE example). A variant without demo content exists for production projects.
Where do I get support?
support@bmsoft1024.com, subject "UMU".
Support and contact
For questions and bug reports, write to the support address with the subject "UMU".
Third-party credits
- Resource Checker: public-domain editor tool by HandCircus / Mangatome, with the original attribution kept in the source, modernised for Unity 6.
- Simplex noise: based on Gustavson's implementation, with the FastFloor negative integer bug fixed.
- MiniJSON: lightweight JSON reading and writing for internal use.