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

Readme

Keywords

Package Sidebar

Install

npm i com.kingdox.uniflux

Weekly Downloads

0

Version

1.3.1

License

MIT

Unpacked Size

658 kB

Total Files

211

Last publish

Collaborators

  • ch4b13r