UniFlux - Event Bus with Flux Integration for Unity
Created by Xavier Arpa (kingdox)
Provides an efficient Event Bus with Flux integration for Unity.
Table of Contents
- Introduction
- Modules
- Performance
- Examples
- Installation
- Special Content
- Contributing
- Author Info
- Special Thanks
- License
Introduction
Soon
Modules
Performance
Performance
Compared methods of UniFlux
Name | Iterations | GC | Time |
---|---|---|---|
UniFlux (Dispatch int ) | 10.000 | 0B | 0ms |
UniFlux (Dispatch string ) | 10.000 | 0B | 1ms |
UniFlux (Store int ADD) | 10.000 | 1.2MB | ~3ms |
UniFlux (Store string ADD) | 10.000 | 1.2MB | ~3ms |
UniFlux (Store int REMOVE) | 10.000 | 1.2MB | ~30ms |
UniFlux (Store string REMOVE) | 10.000 | 1.2MB | ~30ms |
Examples
Examples
using Kingdox.UniFlux; // 1
public sealed class StarterFlux : MonoFlux // 2
{
private void Start() => "StarterFlux.CastTest".Dispatch(); // 3
}
//...
public sealed class TestFlux : MonoFlux
{
[Flux("StarterFlux.CastTest")] private void CastTest() => Debug.Log("Hello World"); // 4
}
using Kingdox.UniFlux;
float _life;
public float Life
{
[Flux("Get_Life")] get => _life;
[Flux("Set_Life")] set
{
_life = value;
"OnChange_Life".Dispatch(value);
}
}
//...
[Flux("OnChange_Life")] private void OnChange_Life(float value)
{
// ...
}
"1".Dispatch();
int _2 = "2".Dispatch<int>();
"3".Dispatch<int>(42);
int _4 = "4".Dispatch<int,int>(42);
"9".IEnumerator();
"10".Task();
// #define UNIFLUX_UNITASK_SUPPORT
"123".UniTask();
Advanced features
using Kingdox.UniFlux.Core;
//...
Flux<byte>.Dispatch(13); //byte as key
string _14 = Flux<bool,string>.Dispatch(true); //bool as key
float _16 = Flux<double,string, float>.Dispatch(Math.PI, "PI"); //double as key
"42".Store(()=>{}, true); // Anonimous Subscriptions
Installation
Installation
-
You can use the .unityPackage in releases
-
You can use the *.tzg in releases and add in PackageManager
-
You can add in PackageManager (How to install package from git URL)
https://github.com/kingdox/UniFlux.git
- You can install via openupm CLI
openupm add com.kingdox.uniflux
- You can install via npm
npm i com.kingdox.uniflux
Special Content
Special Content
To enable special content you must #define
Definition | Description |
---|---|
UNIFLUX_UNITASK_SUPPORT |
Enable Cysharp/UniTask integration |
Contributing
Contributions are always welcome!
Author Info
For support, email arpaxavier@gmail.com