Drop-in replacement for C# Actions & UnityEvents. Zero-allocation invocation, exception-resilient delivery, automatic main thread marshalling. Built-in Signal Profiler. Production-ready event system.Your events shouldn't break your game!The EventHandling package provides a fast, safe, and Unity-native event system built around Signals. It is designed to replace standard C# Actions , EventHandler or UnityEvent by solving the critical production issues that plague standard event architectures:Fragility:Standard events stop invoking if one listener throws an exception (except UnityEvent).Threading:Standard events cannot safely update Unity Objects (UI/Gameplay) from background threads.Garbage:Standard events often incur hidden allocation costs.Opacity:It is nearly impossible to debug who is listening to a standard C# event in the Inspector.Signals are the solution. They are a drop-in replacement for events that are exception-resilient, thread-safe, and allocation-free on the hot path.The API mirrors what you already know: +=, -=, .Invoke().Built-in Signal Profiler lets you inspect your live event system directly in the Editor. See which signals fire, how often, how many listeners they have, and how long they take.Custom error logging enshures all caught errors are logged in the normal unity console with full caller and inner stacktrace.Zero-allocation on the hot path. No boxing of value types. Cache-friendly listener storage. Designed for code that runs thousands of times per frame.DocumentationCoreDrop-in replacement for C# Action, EventHandler, and UnityEventSignal (no data) and Signal (typed payload) variantsOperator syntax (+=, -=) and method syntax (Subscribe, Unsubscribe, UnsubscribeAll)Exception-resilient: all listeners execute even if one throwsAutomatic Main Thread marshalling via forceMainThread: trueActionQueue exposed for general-purpose thread-to-main-thread dispatching with phase control (Update, LateUpdate, FixedUpdate) and frame load balancingPerformanceZero GC allocation on invocationNo boxing of structs, ints, or enumsCache-friendly listener storageBenchmarked: 10M invocations across 1,000 observers, outperforms EventHandler, UnityEvent, and Observer pattern and matches Action's performanceDebuggingBuilt-in Signal Profiler (Editor-only, zero cost in builds)Live observer counts per signalDetect and debug hot pathsAverage execution time per signalBenchmark tooling includedCustom error logging in Unity consoleCompatibilityUnity 6+No external dependenciesAI code-completion tools (GitHub Copilot) were used during development to assist with routine coding tasks. All design, architecture, and creative work is human-made.


