Skip to content

Comparison: Why Switch to Signals?

Why replace the tools you already use (C# EventHandler, UnityEvent, or Action)?

Feature❌ C# Action❌ C# EventHandler❌ UnityEvent✅ Signal
Exception HandlingFails: If one listener crashes, the rest do not run.Fails: If one listener crashes, the rest do not run.Safe: Catches exceptions.Safe: Logs errors, ensures all other listeners still run.
ThreadingUnsafe: Crashes if UI is touched from a background thread.Unsafe: Crashes if UI is touched from a background thread.Unsafe: Must be called on Main Thread.Auto-Sync: Can automatically marshal calls to the Main Thread.
PerformanceFast, but creates garbage on closure allocation.Fast, but tons of EventArgs garbage.Very slow (Reflection-based).Fast: Zero-allocation invocation.
DebuggingInvisible: Can’t see listeners in Editor.Invisible: Can’t see listeners in Editor.Visible: But only if assigned in Editor, events registered in code are invisible.Deep Profiling: View observer counts, heat-maps, and stats in Editor.