current version: 1.0.3
Unity3D Event system.
-
Responsible for all things event flow.
By Using KIX Events you can loosly couple you application components, which provides an ease of scalability and adjustability. -
Responsible for all things loading, crunching, heavy lifting.
Executes everything on different threads, but provides the ease of main thread availability. -
Does have many low code features to help you build your applicaton fast and efficient!
EVENT SYSTEM SUPPORT
- Fires events to all listeners.
- Fires delayed events to all listeners.
- Has inheritable / extentable event types.
@example:
+ Listen to KIX events:
KIX.Instance.Events += OnKIXEvent;
+ Fire KIX events:
KIX.Instance.Fire(new KIXEvent(KIXEvent.DEFAULT, myData), sender);
KIX.Instance.FireEvent(new KIXEvent(KIXEvent.DEFAULT, myData));
KIX.Instance.FireDelayed(new KIXEvent(KIXEvent.DEFAULT, myData),3000, sender);
LISTEN TO SPECIFIC EVENTS
- Ability to listen to specific events of type ( AddEventListener )
- Ability to stop listening to specific events of type ( RemoveEventListener )
- Base listener class with add and remove all events support
- Base listener class with add and remove specific events support
@example:
+ Listen to specific KIX events:
KIX.Instance.AddEventListener( KIXEvent.DEFAULT, <my_method> );
+ Stop listening to specific KIX events:
KIX.Instance.RemoveEventListener( KIXEvent.DEFAULT, <my_method> );
FIRE TO SPECIFIC EVENTS
- Ability to fire specific events, only for listeners to that specific event.
aka addEventListener
@example:
+ Fire specific event:
KIX.Instance.FireEvent( new KIXEvent( KIXEvent.DEFAULT, <possible_data> ) );
CREATE CUSTOM EVENTS
- Ability to create custom events
- Ability to polymorph base event types class.
@example:
public class CustomEventTypes : KIXEventType
{
public static readonly KIXEventType CUSTOM_TYPE = new KIXEventType(100, "CUSTOM_TYPE");
public CustomEventTypes(int key, string value) : base(key, value){ }
}
LOADING SUPPORT
- Loads File as string
- Loads File as ByteArray
@example:
KIX.Instance.Load<string>( <my_file_path>, out data );
KIX.Instance.Load<byte[]>( <my_file_path>, out data );
OR (inside coroutine)
yield return KIX.Instance.Load<string>( <my_file_path>, out data );