2.4.2 • Published 4 years ago
edriven v2.4.2
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
- "eDriven Programming Manual":https://github.com/dkozar/public/blob/master/documents/eDriven_Manual_2-0.pdf (note: eDriven.Gui and eDriven.Animation also included)
- "AssetStore":http://u3d.as/content/adjungo/e-driven/308
- "Additional downloads":http://code.google.com/p/edriven/downloads/list
- "Videos":http://www.youtube.com/playlist?list=PL7EE340828F962941
- "Unity Forum Q&A thread":http://forum.unity3d.com/threads/148424-eDriven-Q-amp-A
- "Author's homepage":http://dankokozar.com
- "I’m @DankoKozar on Twitter":https://twitter.com/DankoKozar.