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()); } }
public static void PostOneShot <T>(this EntityEventSystem events, T eventData) where T : struct, IComponentData { events.CreateEventQueue <T>().Enqueue(eventData); }