Beispiel #1
0
        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();
        }
Beispiel #3
0
        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);
        }