public void TRS_TestHierarchyAddExtraChildrenChangeArchetype() { var testHierarchy = new TestHierarchy(World, m_Manager); testHierarchy.Create(); testHierarchy.Update(); // Add a lot more than parent count children on same frame var childCount = 5; for (int i = 0; i < testHierarchy.Entities.Length; i++) { var parent = testHierarchy.Entities[i]; for (int j = 0; j < childCount; j++) { var child = m_Manager.CreateEntity(typeof(LocalToWorld)); m_Manager.AddComponentData(child, new Parent { Value = parent }); m_Manager.AddComponentData(child, new LocalToParent { Value = float4x4.identity }); } } testHierarchy.Update(); testHierarchy.Update(); testHierarchy.Dispose(); }
public void TRS_TestHierarchyFirstUpdate() { var testHierarchy = new TestHierarchy(World, m_Manager); testHierarchy.Create(); testHierarchy.Update(); testHierarchy.TestExpectedLocalToParent(); testHierarchy.TestExpectedLocalToWorld(); testHierarchy.Dispose(); }
public void TRS_TestHierarchyAfterParentDeleted() { var testHierarchy = new TestHierarchy(World, m_Manager); testHierarchy.Create(); testHierarchy.Update(); testHierarchy.DeleteSomeParents(); testHierarchy.Update(); testHierarchy.TestExpectedLocalToParent(); testHierarchy.TestExpectedLocalToWorld(); testHierarchy.Dispose(); }
public void TRS_TestHierarchyAddExtraChildrenChangeParentAgain() { var testHierarchy = new TestHierarchy(World, m_Manager); testHierarchy.Create(); testHierarchy.Update(); // Add a lot more than parent count children on same frame var childCount = 5; var children = new NativeArray <Entity>(testHierarchy.Entities.Length * childCount, Allocator.TempJob); for (int i = 0; i < testHierarchy.Entities.Length; i++) { var parent = testHierarchy.Entities[i]; for (int j = 0; j < childCount; j++) { var child = m_Manager.CreateEntity(typeof(LocalToWorld), typeof(Parent), typeof(LocalToParent)); m_Manager.SetComponentData(child, new Parent { Value = parent }); m_Manager.SetComponentData(child, new LocalToParent { Value = float4x4.identity }); children[(i * childCount) + j] = child; } } testHierarchy.Update(); // Change parents for (int i = 0; i < testHierarchy.Entities.Length; i++) { var parent = testHierarchy.Entities[i]; for (int j = 0; j < childCount; j++) { var child = children[(i * childCount) + j]; m_Manager.SetComponentData(child, new Parent { Value = parent }); } } testHierarchy.Update(); children.Dispose(); testHierarchy.Dispose(); }
public void TRS_TestHierarchyDestroyAll() { var testHierarchy = new TestHierarchy(World, m_Manager); testHierarchy.Create(); testHierarchy.Update(); // Make sure can handle destroying all parents and children on same frame testHierarchy.DestroyAll(); testHierarchy.Update(); // Make sure remaining cleanup handled cleanly. testHierarchy.Update(); var entities = m_Manager.GetAllEntities(); Assert.IsTrue(entities.Length == 0); testHierarchy.Dispose(); }