EventBus Class
Definition
Namespace: Brine2D.Events
Singleton event bus for publish/subscribe messaging between systems and components. Thread-safe: Subscribe, Unsubscribe, and ClearAll may be called from any thread. Publish is allocation-free on the hot path; it reads a pre-committed handler array without holding the lock during invocation.
Inheritance System.Object → EventBus
Implements IEventBus
| Methods | |
|---|---|
| ClearAll() | Clears all subscribers for all event types. |
| ClearSubscribers<T>() | Clears all subscribers for a specific event type. |
| Publish<T>\(T\) | Publishes an event to all current subscribers of type T. Exceptions thrown by individual handlers are caught and logged; remaining handlers still execute. Allocation-free on the hot path. |
| Subscribe<T>\(Action<T>\) | Subscribes to events of type T and returns a disposal token that unsubscribes automatically when disposed. Prefer this overload to avoid stale subscriptions when scenes are unloaded: `...` |
| Unsubscribe<T>\(Action<T>\) | Manually unsubscribes a handler. Prefer disposing the token returned by Subscribe<T>\(Action<T>\) — it calls this method and is idempotent. |