public void Tick(SystemManager systemManager, EntityManager entityManager)
        {
            entityManager.EntityArrays.Filter(_spec, array =>
            {
                Span <ComponentType> componentTypes = _spec.ComponentTypes;
                Span <int> indices = stackalloc int[componentTypes.Length];
                for (var k = 0; k < componentTypes.Length; k++)
                {
                    indices[k] = array.Specification.GetComponentIndex(componentTypes[k]);
                }

                var data = stackalloc void *[componentTypes.Length];
                for (var i = 0; i < array.AllChunks.Count; i++)
                {
                    var chunk = array.AllChunks[i];
                    for (var k = 0; k < componentTypes.Length; k++)
                    {
                        data[k] = chunk.PackedArray[indices[k]].Memory;
                    }

                    _execute(_owner, chunk.Count, data);
                }
            });
        }
 public void Tick(SystemManager systemManager, EntityManager entityManager)
 {
     _logger.LogDebug(Name);
     ExecutionOrder = (*_execution)++;
 }
 protected abstract void OnTick(SystemManager systemManager, EntityManager entityManager);