public void IJobChunkProcessEntityOffset() { var archetype = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(EcsTestData2), typeof(SharedData1)); var group = m_Manager.CreateEntityQuery(typeof(EcsTestData), typeof(EcsTestData2), typeof(SharedData1)); var entity1 = m_Manager.CreateEntity(archetype); var entity2 = m_Manager.CreateEntity(archetype); m_Manager.SetSharedComponentData <SharedData1>(entity1, new SharedData1 { value = 10 }); m_Manager.SetComponentData <EcsTestData>(entity1, new EcsTestData { value = 10 }); m_Manager.SetSharedComponentData <SharedData1>(entity2, new SharedData1 { value = 20 }); m_Manager.SetComponentData <EcsTestData>(entity2, new EcsTestData { value = 20 }); group.SetSharedComponentFilter(new SharedData1 { value = 10 }); var job = new ProcessEntityOffset { ecsTestType = m_Manager.GetArchetypeChunkComponentType <EcsTestData>(false) }; job.Schedule(group).Complete(); group.SetSharedComponentFilter(new SharedData1 { value = 20 }); job.Schedule(group).Complete(); Assert.AreEqual(0, m_Manager.GetComponentData <EcsTestData>(entity1).value); Assert.AreEqual(0, m_Manager.GetComponentData <EcsTestData>(entity2).value); group.Dispose(); }
public void IJobChunkProcessChunkMultiArchetype() { var archetypeA = m_Manager.CreateArchetype(typeof(EcsTestData)); var archetypeB = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(EcsTestData2)); var archetypeC = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(EcsTestData2), typeof(EcsTestData3)); var entity1A = m_Manager.CreateEntity(archetypeA); var entity2A = m_Manager.CreateEntity(archetypeA); var entityB = m_Manager.CreateEntity(archetypeB); var entityC = m_Manager.CreateEntity(archetypeC); var group = m_Manager.CreateEntityQuery(typeof(EcsTestData)); m_Manager.SetComponentData <EcsTestData>(entity1A, new EcsTestData { value = -1 }); m_Manager.SetComponentData <EcsTestData>(entity2A, new EcsTestData { value = -1 }); m_Manager.SetComponentData <EcsTestData>(entityB, new EcsTestData { value = -1 }); m_Manager.SetComponentData <EcsTestData>(entityC, new EcsTestData { value = -1 }); var job = new ProcessEntityOffset { ecsTestType = m_Manager.GetArchetypeChunkComponentType <EcsTestData>(false) }; job.Schedule(group).Complete(); Assert.AreEqual(0, m_Manager.GetComponentData <EcsTestData>(entity1A).value); Assert.AreEqual(2, m_Manager.GetComponentData <EcsTestData>(entityB).value); Assert.AreEqual(3, m_Manager.GetComponentData <EcsTestData>(entityC).value); group.Dispose(); }