public void ComponentDataArrayFromEntityThrowsIfNotExist() { var entity = m_Manager.CreateEntity(typeof(EcsTestData)); var destroyedEntity = m_Manager.CreateEntity(typeof(EcsTestData)); m_Manager.DestroyEntity(destroyedEntity); var data = EmptySystem.GetComponentDataFromEntity <EcsTestData2>(); Assert.Throws <System.ArgumentException>(() => { data[entity] = new EcsTestData2(); }); Assert.Throws <System.ArgumentException>(() => { data[destroyedEntity] = new EcsTestData2(); }); Assert.Throws <System.ArgumentException>(() => { var p = data[entity]; }); Assert.Throws <System.ArgumentException>(() => { var p = data[destroyedEntity]; }); }
void ChangeGroupOrder(int version, ComponentGroup group) { var entityData = group.GetEntityArray(); var entities = new NativeArray <Entity>(50, Allocator.Temp); entityData.CopyTo(new NativeSlice <Entity>(entities)); for (int i = 0; i < 50; i++) { var e = entities[i]; if ((i & 0x01) == 0) { var testData2 = new EcsTestData2(i); m_Manager.AddComponentData(e, testData2); } } entities.Dispose(); }
public void ReadOnlyComponentDataArray() { var group = m_Manager.CreateComponentGroup(typeof(EcsTestData2), ComponentType.ReadOnly(typeof(EcsTestData))); var entity = m_Manager.CreateEntity(typeof(EcsTestData), typeof(EcsTestData2)); m_Manager.SetComponentData(entity, new EcsTestData(42)); // EcsTestData is read only var arr = group.GetComponentDataArray <EcsTestData>(); Assert.AreEqual(1, arr.Length); Assert.AreEqual(42, arr[0].value); Assert.Throws <System.InvalidOperationException>(() => { arr[0] = new EcsTestData(0); }); // EcsTestData2 can be written to var arr2 = group.GetComponentDataArray <EcsTestData2>(); Assert.AreEqual(1, arr2.Length); arr2[0] = new EcsTestData2(55); Assert.AreEqual(55, arr2[0].value0); m_Manager.DestroyEntity(entity); }