public void RemoveAllChildren() { VFXModel modelA = ScriptableObject.CreateInstance <VFXModelA>(); VFXModel modelB0 = ScriptableObject.CreateInstance <VFXModelB>(); VFXModel modelB1 = ScriptableObject.CreateInstance <VFXModelB>(); VFXModel modelB2 = ScriptableObject.CreateInstance <VFXModelB>(); modelA.AddChild(modelB0); modelA.AddChild(modelB1); modelA.AddChild(modelB2); s_logs.Clear(); modelA.RemoveAllChildren(); Assert.AreEqual(0, modelA.GetNbChildren()); Assert.IsNull(modelB0.GetParent()); Assert.IsNull(modelB1.GetParent()); Assert.IsNull(modelB2.GetParent()); Assert.AreEqual(6, s_logs.Count); for (int i = 0; i < 6; i += 2) { Assert.AreEqual("OnRemoved VFXModelB", s_logs[i]); Assert.AreEqual("OnInvalidate VFXModelA kStructureChanged", s_logs[i + 1]); } }