public void Hierarchy_WithHierarchy_Remove1By1_MaintainsConsistency() { var go = m_Objects.CreateGameObject("root"); var c1 = m_Objects.CreateGameObject("c1"); c1.transform.SetParent(go.transform); var c2 = m_Objects.CreateGameObject("c2"); c2.transform.SetParent(go.transform); var c3 = m_Objects.CreateGameObject("c3"); c3.transform.SetParent(go.transform); IncrementalHierarchyFunctions.Build(new [] { go }, out m_Hierarchy, Allocator.Temp); AssertSize(4); AssertConsistency(go); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { c2.GetInstanceID() }, Allocator.Temp)); Object.DestroyImmediate(c2); AssertSize(3); AssertConsistency(go); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { c1.GetInstanceID() }, Allocator.Temp)); Object.DestroyImmediate(c1); AssertSize(2); AssertConsistency(go); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { c3.GetInstanceID() }, Allocator.Temp)); Object.DestroyImmediate(c3); AssertSize(1); AssertConsistency(go); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { go.GetInstanceID() }, Allocator.Temp)); Object.DestroyImmediate(go); AssertSize(0); }
public void Hierarchy_WithSingleGameObject_IsEmptyAfterDelete() { var go = m_Objects.CreateGameObject("root"); IncrementalHierarchyFunctions.Build(new [] { go }, out m_Hierarchy, Allocator.Temp); AssertSize(1); AssertConsistency(go); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { go.GetInstanceID() }, Allocator.Temp)); AssertSize(0); }
public void Hierarchy_WithHierarchy_DeleteRemovesFullHierarchy() { var go = m_Objects.CreateGameObject("root"); m_Objects.CreateGameObject("c1").transform.SetParent(go.transform); m_Objects.CreateGameObject("c2").transform.SetParent(go.transform); m_Objects.CreateGameObject("c3").transform.SetParent(go.transform); IncrementalHierarchyFunctions.Build(new [] { go }, out m_Hierarchy, Allocator.Temp); AssertSize(4); AssertConsistency(go); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { go.GetInstanceID() }, Allocator.Temp)); AssertSize(0); }
public void Hierarchy_WithHierarchy_DeleteOutOfOrder_MaintainsConsistency() { var root1 = m_Objects.CreateGameObject("root1"); var c1 = m_Objects.CreateGameObject("c1"); c1.transform.SetParent(root1.transform); var c2 = m_Objects.CreateGameObject("c2"); c2.transform.SetParent(c1.transform); IncrementalHierarchyFunctions.Build(new [] { root1 }, out m_Hierarchy, Allocator.Temp); AssertSize(3); AssertConsistency(root1); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { c2.GetInstanceID(), c1.GetInstanceID() }, Allocator.Temp)); Object.DestroyImmediate(c1); AssertSize(1); AssertConsistency(root1); }
public void Hierarchy_WithHierarchy_DeleteSeparateHierarchy_MaintainsConsistency() { var root1 = m_Objects.CreateGameObject("root1"); m_Objects.CreateGameObject("c1").transform.SetParent(root1.transform); var root2 = m_Objects.CreateGameObject("root2"); m_Objects.CreateGameObject("c2").transform.SetParent(root2.transform); IncrementalHierarchyFunctions.Build(new [] { root1, root2 }, out m_Hierarchy, Allocator.Temp); AssertSize(4); AssertConsistency(root1); AssertConsistency(root2); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { root1.GetInstanceID() }, Allocator.Temp)); Object.DestroyImmediate(root1); AssertSize(2); AssertConsistency(root2); IncrementalHierarchyFunctions.Remove(m_Hierarchy, new NativeArray <int>(new [] { root2.GetInstanceID() }, Allocator.Temp)); AssertSize(0); }