static void SetComponentDataValueByMethod(ComponentDataFromEntity <EcsTestData> cdfe, Entity entity, int value) { cdfe[entity] = new EcsTestData() { value = value }; }
public void Execute(ArchetypeChunk batchInChunk, int batchIndex, int indexOfFirstEntityInQuery) { var data = batchInChunk.GetNativeArray(EcsTestDataRW); data[0] = new EcsTestData { value = 10 }; }
public void Execute(ArchetypeChunk batchInChunk, int batchIndex) { var data = batchInChunk.GetNativeArray(EcsTestDataRW); data[0] = new EcsTestData { value = 10 }; }
public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) { var data = chunk.GetNativeArray(EcsTestDataRW); data[0] = new EcsTestData { value = 10 }; }
public void GetComponentSetComponentThroughComponentDataFromEntity_SetsValue() { Entities .WithoutBurst() .ForEach((Entity entity, in EcsTestDataEntity tde) => { var cdfeWrite = GetComponentDataFromEntity <EcsTestData>(false); cdfeWrite[entity] = new EcsTestData() { value = GetComponentDataFromEntity <EcsTestData>(true)[tde.value1].value }; }).Schedule(); Dependency.Complete(); }
public void GetComponentGroup_WhenObjectWithMatchingComponentAndECSDataExists_ComponentArraysArePopulated() { var goe = m_GameObject.AddComponent <EcsTestProxy>().GetComponent <GameObjectEntity>(); var expectedTestData = new EcsTestData(5); m_Manager.SetComponentData(goe.Entity, expectedTestData); var grp = EmptySystem.GetComponentGroup(typeof(Transform), typeof(EcsTestData)); var transformArray = grp.GetComponentArray <Transform>(); Assert.That(transformArray.ToArray(), Is.EqualTo(new[] { goe.transform })); var ecsDataArray = grp.GetComponentDataArray <EcsTestData>(); Assert.That(ecsDataArray.Length, Is.EqualTo(1)); Assert.That(ecsDataArray[0], Is.EqualTo(expectedTestData)); }
public void GetComponentDataFromEntityInEntitiesForEachWithNestedCaptures_ComponentAccessWorks() { var outerCapture = 2; { var innerCapture = 10; Entities .ForEach((Entity entity, in EcsTestDataEntity tde) => { if (HasComponent <EcsTestDataEntity>(entity)) { outerCapture = 10; } var cdfeRead = GetComponentDataFromEntity <EcsTestData>(true); var val = cdfeRead[tde.value1].value; var cdfeWrite = GetComponentDataFromEntity <EcsTestData>(false); cdfeWrite[entity] = new EcsTestData(val * innerCapture * outerCapture); }).Run(); } }
public void RemoveComponent_ModifiedEntity_VisibleFromInsideForEach() { EntityManager.AddComponentData(EntityManager.CreateEntity(), new EcsTestData(5)); Entities .WithStructuralChanges() .ForEach((Entity e, ref EcsTestData testData) => { Assert.IsTrue(EntityManager.HasComponent <EcsTestData>(e)); EntityManager.RemoveComponent <EcsTestData>(e); Assert.IsFalse(EntityManager.HasComponent <EcsTestData>(e)); EntityManager.AddComponentData(e, new EcsTestData(123)); Assert.IsTrue(EntityManager.HasComponent <EcsTestData>(e)); { EcsTestData d = EntityManager.GetComponentData <EcsTestData>(e); Assert.AreEqual(123, d.value); testData.value = 123; } EntityManager.AddSharedComponentData(e, new EcsTestSharedComp(22)); Assert.IsTrue(EntityManager.HasComponent <EcsTestSharedComp>(e)); EntityManager.RemoveComponent <EcsTestSharedComp>(e); Assert.IsFalse(EntityManager.HasComponent <EcsTestSharedComp>(e)); Entity c = EntityManager.CreateEntity(); EntityManager.AddComponentData(c, new EcsTestData(-22)); Assert.IsTrue(EntityManager.HasComponent <EcsTestData>(c)); EntityManager.RemoveComponent <EcsTestData>(c); Assert.IsFalse(EntityManager.HasComponent <EcsTestData>(c)); EntityManager.AddComponentData(c, new EcsTestData(-123)); EntityManager.RemoveComponent <EcsTestData>(c); }).Run(); using (var group = EntityManager.CreateEntityQuery(typeof(EcsTestData))) using (var arr = group.ToComponentDataArray <EcsTestData>(Allocator.TempJob)) { Assert.AreEqual(1, arr.Length); // (e) Assert.AreEqual(123, arr[0].value); } }
public void SetComponentThroughGetComponentDataFromEntity_SetsValue(Entity entity, ScheduleType scheduleType) { switch (scheduleType) { case ScheduleType.Run: Entities.ForEach((ref EcsTestDataEntity tde) => { var cdfe = GetComponentDataFromEntity <EcsTestData>(false); cdfe[entity] = new EcsTestData() { value = 2 }; }).Run(); break; case ScheduleType.Schedule: Entities.ForEach((ref EcsTestDataEntity tde) => { var cdfe = GetComponentDataFromEntity <EcsTestData>(false); cdfe[entity] = new EcsTestData() { value = 2 }; }).Schedule(); break; case ScheduleType.ScheduleParallel: Entities.ForEach((ref EcsTestDataEntity tde) => { var cdfe = GetComponentDataFromEntity <EcsTestData>(false); cdfe[entity] = new EcsTestData() { value = 2 }; }).ScheduleParallel(); break; } Dependency.Complete(); }
public void Instantiate_HasGetComponent_VisibleFromInsideForEach() { EntityManager.AddComponentData(EntityManager.CreateEntity(), new EcsTestData(5)); Entities .WithStructuralChanges() .ForEach((Entity e, ref EcsTestData testData) => { Assert.AreEqual(5, testData.value); Assert.IsFalse(EntityManager.HasComponent <EcsTestData2>(e)); Entity newe1 = EntityManager.Instantiate(e); EntityManager.AddComponentData(e, new EcsTestData2() { value0 = 1, value1 = 3 }); { EcsTestData2 ed2 = EntityManager.GetComponentData <EcsTestData2>(e); Assert.AreEqual(3, ed2.value1); Assert.AreEqual(1, ed2.value0); } Entity deferred = EntityManager.CreateEntity(); EntityManager.AddComponentData(deferred, testData); { var ed = EntityManager.GetComponentData <EcsTestData>(deferred); Assert.AreEqual(testData.value, ed.value); } Entity newe2 = EntityManager.Instantiate(e); Assert.IsFalse(EntityManager.HasComponent <EcsTestData2>(newe1)); { EcsTestData ed = EntityManager.GetComponentData <EcsTestData>(newe1); Assert.AreEqual(5, ed.value); } Assert.IsTrue(EntityManager.HasComponent <EcsTestData2>(e)); { EcsTestData2 ed2 = EntityManager.GetComponentData <EcsTestData2>(newe2); Assert.AreEqual(3, ed2.value1); Assert.AreEqual(1, ed2.value0); } Assert.IsTrue(EntityManager.HasComponent <EcsTestData>(newe1)); EntityManager.RemoveComponent <EcsTestData>(newe1); Assert.IsFalse(EntityManager.HasComponent <EcsTestData>(newe1)); }).Run(); using (var allEntities = EntityManager.GetAllEntities()) Assert.AreEqual(4, allEntities.Length); using (var group = new ExtractTestDataFromEntityManager <EcsTestData>(EntityManager)) { Assert.AreEqual(3, group.Values.Length); Assert.AreEqual(5, group.Values[0].value); // e Assert.AreEqual(5, group.Values[1].value); // deferred Assert.AreEqual(5, group.Values[2].value); // newe2 } using (var group = new ExtractTestDataFromEntityManager <EcsTestData2>(EntityManager)) { Assert.AreEqual(2, group.Values.Length); // (e && newe2) Assert.AreEqual(3, group.Values[0].value1); Assert.AreEqual(1, group.Values[0].value0); Assert.AreEqual(3, group.Values[1].value1); Assert.AreEqual(1, group.Values[1].value0); } }