您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
118 行
4.0 KiB
118 行
4.0 KiB
using System;
|
|
using NUnit.Framework;
|
|
using Unity.Collections;
|
|
|
|
namespace Unity.Entities.Tests
|
|
{
|
|
public class DisableComponentTests : ECSTestsFixture
|
|
{
|
|
[Test]
|
|
public void DIS_DontFindDisabledInComponentGroup()
|
|
{
|
|
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
|
|
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
|
|
|
|
var group = m_Manager.CreateComponentGroup(typeof(EcsTestData));
|
|
|
|
var entity0 = m_Manager.CreateEntity(archetype0);
|
|
var entity1 = m_Manager.CreateEntity(archetype1);
|
|
|
|
var arr = group.GetComponentDataArray<EcsTestData>();
|
|
Assert.AreEqual(1, arr.Length);
|
|
|
|
m_Manager.DestroyEntity(entity0);
|
|
m_Manager.DestroyEntity(entity1);
|
|
}
|
|
|
|
[Test]
|
|
public void DIS_DontFindDisabledInChunkIterator()
|
|
{
|
|
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
|
|
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
|
|
|
|
var entity0 = m_Manager.CreateEntity(archetype0);
|
|
var entity1 = m_Manager.CreateEntity(archetype1);
|
|
|
|
var query = new EntityArchetypeQuery
|
|
{
|
|
Any = Array.Empty<ComponentType>(),
|
|
None = Array.Empty<ComponentType>(),
|
|
All = new ComponentType[] {typeof(EcsTestData)}
|
|
};
|
|
var chunks = m_Manager.CreateArchetypeChunkArray(query, Allocator.TempJob);
|
|
var count = ArchetypeChunkArray.CalculateEntityCount(chunks);
|
|
chunks.Dispose();
|
|
|
|
Assert.AreEqual(1, count);
|
|
|
|
m_Manager.DestroyEntity(entity0);
|
|
m_Manager.DestroyEntity(entity1);
|
|
}
|
|
|
|
[Test]
|
|
public void DIS_FindDisabledIfRequestedInComponentGroup()
|
|
{
|
|
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
|
|
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
|
|
|
|
var group = m_Manager.CreateComponentGroup(typeof(EcsTestData), typeof(Disabled));
|
|
|
|
var entity0 = m_Manager.CreateEntity(archetype0);
|
|
var entity1 = m_Manager.CreateEntity(archetype1);
|
|
var entity2 = m_Manager.CreateEntity(archetype1);
|
|
|
|
var arr = group.GetComponentDataArray<EcsTestData>();
|
|
Assert.AreEqual(2, arr.Length);
|
|
|
|
m_Manager.DestroyEntity(entity0);
|
|
m_Manager.DestroyEntity(entity1);
|
|
m_Manager.DestroyEntity(entity2);
|
|
}
|
|
|
|
[Test]
|
|
public void DIS_FindDisabledIfRequestedInChunkIterator()
|
|
{
|
|
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
|
|
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
|
|
|
|
var entity0 = m_Manager.CreateEntity(archetype0);
|
|
var entity1 = m_Manager.CreateEntity(archetype1);
|
|
var entity2 = m_Manager.CreateEntity(archetype1);
|
|
|
|
var query = new EntityArchetypeQuery
|
|
{
|
|
Any = Array.Empty<ComponentType>(),
|
|
None = Array.Empty<ComponentType>(),
|
|
All = new ComponentType[] {typeof(EcsTestData), typeof(Disabled)}
|
|
};
|
|
var chunks = m_Manager.CreateArchetypeChunkArray(query, Allocator.TempJob);
|
|
var count = ArchetypeChunkArray.CalculateEntityCount(chunks);
|
|
chunks.Dispose();
|
|
|
|
Assert.AreEqual(2, count);
|
|
|
|
m_Manager.DestroyEntity(entity0);
|
|
m_Manager.DestroyEntity(entity1);
|
|
m_Manager.DestroyEntity(entity2);
|
|
}
|
|
|
|
[Test]
|
|
public void DIS_GetAllIncludesDisabled()
|
|
{
|
|
var archetype0 = m_Manager.CreateArchetype(typeof(EcsTestData));
|
|
var archetype1 = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(Disabled));
|
|
|
|
var entity0 = m_Manager.CreateEntity(archetype0);
|
|
var entity1 = m_Manager.CreateEntity(archetype1);
|
|
var entity2 = m_Manager.CreateEntity(archetype1);
|
|
|
|
var entities = m_Manager.GetAllEntities();
|
|
Assert.AreEqual(3,entities.Length);
|
|
entities.Dispose();
|
|
|
|
m_Manager.DestroyEntity(entity0);
|
|
m_Manager.DestroyEntity(entity1);
|
|
m_Manager.DestroyEntity(entity2);
|
|
}
|
|
}
|
|
}
|