public void IJobChunk_Run_WorksWithMultipleChunks() { var archetype = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(EcsTestData2), typeof(EcsTestSharedComp)); var group = m_Manager.CreateEntityQuery(new EntityQueryDesc { Any = Array.Empty <ComponentType>(), None = Array.Empty <ComponentType>(), All = new ComponentType[] { typeof(EcsTestData), typeof(EcsTestData2) } }); const int entityCount = 10; var entities = new NativeArray <Entity>(entityCount, Allocator.Temp); m_Manager.CreateEntity(archetype, entities); for (int i = 0; i < entityCount; ++i) { m_Manager.SetSharedComponentData(entities[i], new EcsTestSharedComp(i)); } var job = new ProcessChunks { ecsTestType = m_Manager.GetArchetypeChunkComponentType <EcsTestData>(false) }; job.Run(group); for (int i = 0; i < entityCount; ++i) { Assert.AreEqual(5, m_Manager.GetComponentData <EcsTestData>(entities[i]).value); } entities.Dispose(); }
public void IJobChunkProcess() { var archetype = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(EcsTestData2)); var group = m_Manager.CreateEntityQuery(new EntityQueryDesc { Any = Array.Empty <ComponentType>(), None = Array.Empty <ComponentType>(), All = new ComponentType[] { typeof(EcsTestData), typeof(EcsTestData2) } }); var entity = m_Manager.CreateEntity(archetype); var job = new ProcessChunks { ecsTestType = m_Manager.GetArchetypeChunkComponentType <EcsTestData>(false) }; job.Run(group); Assert.AreEqual(5, m_Manager.GetComponentData <EcsTestData>(entity).value); }