2.4.2 • Published 4 years ago

edriven v2.4.2

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

h1. eDriven Framework

h1. Event-driven / asynchronous framework for "Unity3d":http://unity3d.com/.

h2. Author: "Danko Kozar":http://dankokozar.com

h2. Concept

  • eDriven framework is the result of 10 years of programming experience, self-education and research.
  • This framework turns Unity into an asynchronous system.
  • It's inspired by RIA (Rich Internet Applications) frameworks, such as Apache Flex and other Actionscript and Javascript frameworks.
  • The idea behind building a framework was to bring the event-driven (publish-subscribe type of) programming paradigm to Unity.
  • There have been a number of libraries for Unity, but I decided to go with my own. That's because I wanted to build additional libraries upon my event-dispatching system and wanted the total control.
  • .NET framework events were not appropriate.
  • There are two parallel event-dispatching systems inside eDriven: 1) Signals 2) Events
  • Signals are inspired by "Robert Penner's Signals":https://github.com/robertpenner/as3-signals and are used for framework internals. Signals are faster than events because there's no instantiation involved. Also, your class isn't required to inherit some base (dispatcher) class.
  • Events are more common and are inspired by "DOM Level 3 Events":http://www.w3.org/TR/DOM-Level-3-Events/. They support event bubbling, which is the important feature for GUI. The class that needs to dispatch events must inherit from EventDispatcher class.

h2. Event syntax

Publish:

Subscribe:

h2. Signal syntax

Publish:

Subscribe:

h2. Core classes and utilities

eDriven framework contains a number of classes:

  • SystemManager (emits system signals)
  • SystemEventDispatcher (dispatches system events)
  • MouseEventDispatcher (dispatches mouse events)
  • KeyboardMapper (easy mapping for keyboard gestures)
  • CallbackQueue (implements queuing of async operations)
  • TaskQueue (sequences async operations)
  • PowerMapper (maps strings to stuff)
  • AudioPlayerMapper (maps strings to AudioPlayers)
  • Cache (caches stuff)
  • ObjectPool (prevents instantiation and garbage collection problems)
  • Timer (handy source of timed events)
  • HttpConnector (loads stuff from the web and triggers responders when finished)
  • JavascriptConnector (talks with a host web page)

... and many others. They all serve the purpose of the framework: making the asynchronous, event-driven programming possible with Unity.

h2. Resources