public void CreateMultiple() { ECSWorld world = new ECSWorld(); Entity[] entities = new Entity[numIterations]; for (int i = 0; i < numIterations; i++) { entities[i] = world.Instantiate(prefab1); } for (int i = 0; i < numIterations; i++) { Assert.True(world.ComponentManager.HasComponent <TestComponent1>(entities[i])); var component = world.ComponentManager.GetComponent <TestComponent1>(entities[i]); var component2 = world.ComponentManager.GetComponent <TestComponent2>(entities[i]); Assert.Same(shared, world.ComponentManager.GetSharedComponent <SharedComponent1>(entities[i])); Assert.Equal(1, component.i); Assert.Equal(2, component.d, 3); Assert.Equal(3, component.f, 3); Assert.Equal(3, component2.i); Assert.Equal(4, component2.d, 3); Assert.Equal(5, component2.f, 3); } }
public void RemoveSharedComponentFromEntity() { ECSWorld world = new ECSWorld(); var buffer = new EntityCommandBuffer(world); SharedComponent1 shared1 = new SharedComponent1(); EntityArchetype archetype = EntityArchetype.Empty; archetype = archetype.Add <TestComponent1>(); archetype = archetype.AddShared(shared1); Entity target = world.Instantiate(archetype); buffer.RemoveSharedComponent <SharedComponent1>(target); buffer.Playback(); ComponentQuery query = new ComponentQuery(); query.IncludeReadWrite <TestComponent1>(); query.ExcludeShared <SharedComponent1>(); Assert.Collection(world.ComponentManager.GetBlocks(query), accessor => { Assert.Equal(1, accessor.GetEntityData().Length); }); }
public void SetComponentToEntity() { ECSWorld world = new ECSWorld(); var buffer = new EntityCommandBuffer(world); SharedComponent1 shared1 = new SharedComponent1(); EntityArchetype archetype = EntityArchetype.Empty; archetype = archetype.Add <TestComponent1>(); archetype = archetype.AddShared(shared1); Entity target = world.Instantiate(archetype); buffer.SetComponent(target, new TestComponent1 { i = 2, d = 3, f = 4 }); buffer.Playback(); ComponentQuery query = new ComponentQuery(); query.IncludeReadWrite <TestComponent1>(); query.IncludeShared <SharedComponent1>(); Assert.Collection(world.ComponentManager.GetBlocks(query), accessor => { Assert.Equal(1, accessor.GetEntityData().Length); var cData = accessor.GetComponentData <TestComponent1>(); Assert.Equal(2, cData[0].i); Assert.Equal(3d, cData[0].d, 3); Assert.Equal(4f, cData[0].f, 3); }); }
public void CreateWithComponent() { ECSWorld world = new ECSWorld(); Entity instantiated = world.Instantiate(prefab2); Assert.True(world.ComponentManager.HasComponent <TestComponentVector3>(instantiated)); TestComponentVector3 component = world.ComponentManager.GetComponent <TestComponentVector3>(instantiated); Assert.Equal(component.value, Vector3.One); }