com.kingdox.uniflux

1.3.1 • Public • Published

Logo

UniFlux - Event Bus with Flux Integration for Unity

Created by Xavier Arpa (kingdox)

Provides an efficient Event Bus with Flux integration for Unity.

Unity MIT License Build status PRs Welcome

Releases UPM NPM version

GitHub all releases npm

CodeFactor

Table of Contents

Introduction

Soon

WorkFlow

Example_1

Architecture

Architecture

Modules

Modules

Unity Unity Unity Unity Unity Unity Unity Unity Unity

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
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

@kingdox

For support, email arpaxavier@gmail.com

Twitter

LinkedIn

Special Thanks

@Quinowl

License

MIT

/com.kingdox.uniflux/

    Package Sidebar

    Install

    npm i com.kingdox.uniflux

    Weekly Downloads

    2

    Version

    1.3.1

    License

    MIT

    Unpacked Size

    658 kB

    Total Files

    211

    Last publish

    Collaborators

    • ch4b13r