com.amanotes.eventbus
v1.0.2
Published
Lightweight type-safe event bus for Unity.
Maintainers
Readme
EventBus
Package: com.amanotes.eventbus v1.0.2
Unity: 2022.3+
Namespace: Amanotes.Orchestra
Dependencies: com.amanotes.extensions 1.0.2
Lightweight type-safe event bus for Unity. Supports global and source-scoped dispatchers, pooled event args, and UI component bindings.
Quick Start
// Type-based (recommended)
KEventBus.AddListener<PlayerDiedEvent>(OnPlayerDied);
KEventBus.Dispatch(new PlayerDiedEvent { lives = 0 });
KEventBus.RemoveListener<PlayerDiedEvent>(OnPlayerDied);
void OnPlayerDied(KEventArgs args)
{
var data = args.GetData<PlayerDiedEvent>();
}
// Source-scoped
var dispatcher = KEventBus.Get(mySource, autoNew: true);
dispatcher.AddListener<ScoreChangedEvent>(OnScoreChanged);
dispatcher.Dispatch(new ScoreChangedEvent { score = 100 });Key Types
KEventBus— static global dispatcher with type-based and string-based APIsKEventArgs— event payload wrapper withGetData<T>()IDispatcher— type-safe listener interfaceIEventDispatcher— string-based listener interface (legacy)KEventBindingBase— MonoBehaviour base for UI event bindingsKEventButton,KEventSlider,KEventToggle,KEventDropdown,KEventInputField,KEventScrollRect— ready-made UI bindings
Installing in your project
Add to your Packages/manifest.json:
{
"dependencies": {
"com.amanotes.eventbus": "1.0.2",
"com.amanotes.extensions": "1.0.2"
},
"scopedRegistries": [
{
"name": "npmjs",
"url": "https://registry.npmjs.org/",
"scopes": [
"com.amanotes"
]
}
]
}Then open Unity — the Package Manager will resolve and download all packages automatically.
