void IEcsSystem.Initialize(EcsWorld world) { _world = world; Debug.LogFormat("{0} => initialize", GetType().Name); _world.SubscribeToEvent <ControlEvent> (OnControlEntity); _controlObjects = _world.GetFilter <ControlComponent> (); _controlComponentId = _world.GetComponentIndex <ControlComponent> (); }
void IEcsSystem.Initialize(EcsWorld world) { _world = world; Debug.LogFormat("{0} => initialize", GetType().Name); _destroyObjects = _world.GetFilter <DestroyComponent> (); _destroyComponentId = _world.GetComponentIndex <DestroyComponent> (); _world.OnComponentDetach += OnComponentDetach; _world.SubscribeToEvent <DestroyEvent> (OnDestroyEntity); }
void IEcsSystem.Initialize(EcsWorld world) { _world = world; Debug.LogFormat("{0} => initialize", GetType().Name); _world.SubscribeToEvent <SpawnEvent> (OnSpawnTail); _foodPrefab = Resources.Load <GameObject> ("Food"); _tailPrefab = Resources.Load <GameObject> ("SnakeTail"); _lastSpawn = DateTime.Now; SpawnSnake(); }
void OnEnable() { _world = new EcsWorld() .AddSystem(new SpawnSystem()) .AddSystem(new InputSystem()) .AddSystem(new ControlSystem()) .AddSystem(new MoveSystem()) .AddSystem(new CollisionSystem()) .AddSystem(new DestroySystem()); _world.Initialize(); _world.SubscribeToEvent <int> (OnScore); var stats = _world.GetStats(); Debug.LogFormat("[Systems: {0}] [Entities: {1}/{2}] [Components: {3}] [Filters: {4}] [DelayedUpdates: {5}]", stats.AllSystems, stats.AllEntities, stats.ReservedEntities, stats.Components, stats.Filters, stats.DelayedUpdates); }
void IEcsSystem.Destroy() { Debug.LogFormat("{0} => destroy", GetType().Name); _world.SubscribeToEvent <SpawnEvent> (OnSpawnTail); }