private void Setup(out EntityEventSystem system, out EntityArchetype archetype, out EntityQuery query)
    {
        system = m_World.GetOrCreateSystem <EntityEventSystem>();
        var components = new[]
        {
            ComponentType.ReadWrite <EntityEvent>(),
            ComponentType.ReadWrite <EcsTestData>(),
        };

        archetype = m_Manager.CreateArchetype(components);
        query     = m_Manager.CreateEntityQuery(components);
    }
    private static void AssertEntitiesCreated(EntityEventSystem system, EntityArchetype archetype, EventQueue <EcsTestData> queue, EntityQuery query, int[] entityCounts)
    {
        for (int i = 0; i < entityCounts.Length; i++)
        {
            var entities = entityCounts[i];
            for (int j = 0; j < entities; j++)
            {
                queue.Enqueue(new EcsTestData());
            }
            system.Update();

            Assert.AreEqual(entities, query.CalculateEntityCount());

            var expectedChunks = entities / archetype.ChunkCapacity + ((entities % archetype.ChunkCapacity == 0) ? 0 : 1);
            Assert.AreEqual(expectedChunks, query.CalculateChunkCount());
        }
    }
Exemple #3
0
 public static void PostOneShot <T>(this EntityEventSystem events, T eventData) where T : struct, IComponentData
 {
     events.CreateEventQueue <T>().Enqueue(eventData);
 }