$ show psydack/uimgui
UImGui is a Unity package that integrates Dear ImGui (immediate-mode GUI library) with the Unity game engine. It provides a complete solution for creating debug UIs, internal tools, runtime overlays, and editor-like workflows within Unity applications. The architecture centers around a UImGui MonoBehaviour that manages the Dear ImGui frame loop, with abstractions for rendering (Mesh vs Procedural), input (Input Manager vs Input System), and optional plugin integrations (ImPlot, ImNodes, ImGuizmo, etc.). The package supports all three Unity render pipelines (Built-in, URP, HDRP) and both Unity input systems, with proper texture handling, font management via FreeType, and docking support.
The LLM identified 3 files worth highlighting for reuse:
Provides zero-cost ref conversions between UnityEngine and System.Numerics vector types using Unsafe.As. This self-contained utility enables efficient interop between Unity's vector types and Dear ImGui's System.Numerics usage without garbage or performance overhead. Demonstrates advanced C# skills with safe type punning and method inlining.
Creates a safe interop layer for Dear ImGui's unmanaged callbacks, properly handling memory allocation/deallocation for backend platform/renderer names and clipboard functions. Eliminates memory leaks and unsafe pointer usage while providing a clean API for ImGui.NET integration. Shows expertise in managing unmanaged resources in .NET.
Implements a clean plugin registration system using RuntimeInitializeOnLoadMethod to automatically register optional integrations (ImPlot, ImNodes, etc.) without scattered #ifdef blocks throughout the codebase. Demonstrates excellent architectural decoupling and maintainability through convention-over-configuration plugin discovery.