您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

92 行
2.8 KiB

using Unity.Collections;
using NUnit.Framework;
using Unity.Entities;
namespace Unity.Entities.Tests
{
interface IEcsFooInterface
{
int value { get; set; }
}
public struct EcsFooTest : IComponentData, IEcsFooInterface
{
public int value { get; set; }
public EcsFooTest(int inValue) { value = inValue; }
}
interface IEcsBarInterface
{
int value { get; set; }
}
public struct EcsBarTest : IComponentData, IEcsBarInterface
{
public int value { get; set; }
public EcsBarTest(int inValue) { value = inValue; }
}
public class EntityManagerTests : ECSTestsFixture
{
[Test]
public void IncreaseEntityCapacity()
{
var archetype = m_Manager.CreateArchetype(typeof(EcsTestData));
var count = 1024;
var array = new NativeArray<Entity>(count, Allocator.Temp);
m_Manager.CreateEntity (archetype, array);
for (int i = 0; i < count; i++)
{
Assert.AreEqual(i, array[i].Index);
}
array.Dispose();
}
[Test]
public void FoundComponentInterface()
{
var archetype = m_Manager.CreateArchetype(typeof(EcsTestData),typeof(EcsFooTest));
var count = 1024;
var array = new NativeArray<Entity>(count, Allocator.Temp);
m_Manager.CreateEntity (archetype, array);
var fooTypes = m_Manager.GetAssignableComponentTypes(typeof(IEcsFooInterface));
Assert.AreEqual(1,fooTypes.Count);
Assert.AreEqual(typeof(EcsFooTest),fooTypes[0]);
var barTypes = m_Manager.GetAssignableComponentTypes(typeof(IEcsBarInterface));
Assert.AreEqual(0,barTypes.Count);
array.Dispose();
}
[Test]
public void VersionIsConsistent()
{
Assert.AreEqual(0, m_Manager.Version);
var entity = m_Manager.CreateEntity(typeof(EcsTestData));
Assert.AreEqual(1, m_Manager.Version);
m_Manager.AddComponentData(entity, new EcsTestData2(0));
Assert.AreEqual(2, m_Manager.Version);
m_Manager.SetComponentData(entity, new EcsTestData2(5));
Assert.AreEqual(2, m_Manager.Version); // Shouldn't change when just setting data
m_Manager.RemoveComponent<EcsTestData2>(entity);
Assert.AreEqual(3, m_Manager.Version);
m_Manager.DestroyEntity(entity);
Assert.AreEqual(4, m_Manager.Version);
}
[Test]
[Ignore("NOT IMPLEMENTED")]
public void UsingComponentGroupOrArchetypeorEntityFromDifferentEntityManagerGivesExceptions()
{
}
}
}