public void unregister(GameUri uri) { IComponentSystem system; if (_systems.TryGetValue(uri, out system)) { if (system is IUpdateSubscriber) { _updateSubscribers.Remove((IUpdateSubscriber)system); } if (system is IRenderSubscriber) { _renderSubscribers.Remove((IRenderSubscriber)system); } _systems.Remove(uri); system.shutdown(); } }
public T register <T>(GameUri uri, T system) where T : IComponentSystem { if (system is IUpdateSubscriber) { _updateSubscribers.Add((IUpdateSubscriber)system); } if (system is IRenderSubscriber) { _renderSubscribers.Add((IRenderSubscriber)system); } _systems.Add(uri, system); if (_initialised) { system.init(); } return(system); }