public IEnumerator RemoveAndAddPhysicsMaterialToAnotherBrushMaterial_MaterialStillRegistered() { using (ChiselBrushMaterial newBrushMaterial1 = new ChiselBrushMaterial(), newBrushMaterial2 = new ChiselBrushMaterial()) { var newPhysicsMaterial1 = new PhysicMaterial(); var newPhysicsMaterial2 = new PhysicMaterial(); newBrushMaterial1.PhysicsMaterial = newPhysicsMaterial1; newBrushMaterial2.PhysicsMaterial = newPhysicsMaterial2; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newPhysicsMaterial1, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(newPhysicsMaterial2, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial1.GetInstanceID())); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial2.GetInstanceID())); newBrushMaterial1.PhysicsMaterial = newPhysicsMaterial2; newBrushMaterial2.PhysicsMaterial = newPhysicsMaterial1; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newPhysicsMaterial1, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(newPhysicsMaterial2, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial1.GetInstanceID())); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial2.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial1); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial2); } }
public IEnumerator CreateBrushMaterialWithPhysicMaterial_ChangePhysicMaterial_ManagerOnlyKnowsNewMaterial() { using (var newBrushMaterial = new ChiselBrushMaterial()) { var newPhysicsMaterial1 = new PhysicMaterial(); var newPhysicsMaterial2 = new PhysicMaterial(); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial1; yield return(null); var foundPhysicsMaterial = ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false); Assert.AreNotEqual(newPhysicsMaterial1, newPhysicsMaterial2); Assert.AreEqual(newPhysicsMaterial1, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial1.GetInstanceID())); LogAssert.Expect(LogType.Error, new Regex("Could not find")); Assert.IsNull(foundPhysicsMaterial); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial2; yield return(null); ChiselBrushMaterialManager.Update(); LogAssert.Expect(LogType.Error, new Regex("Could not find")); Assert.IsNull(ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(newPhysicsMaterial2, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial2.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial1); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial2); } }
public IEnumerator CreateBrushMaterialWithPhysicMaterial_ManagerKnowsMaterial() { using (var newBrushMaterial = new ChiselBrushMaterial()) { var newPhysicsMaterial = new PhysicMaterial(); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.True(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); Assert.AreEqual(newPhysicsMaterial, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial); } }
public IEnumerator CreateTwoBrushMaterialsWithSamePhysicsMaterial_RefCountIsTwo() { using (ChiselBrushMaterial newBrushMaterial1 = new ChiselBrushMaterial(), newBrushMaterial2 = new ChiselBrushMaterial()) { var newPhysicsMaterial = new PhysicMaterial(); newBrushMaterial1.PhysicsMaterial = newPhysicsMaterial; newBrushMaterial2.PhysicsMaterial = newPhysicsMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newPhysicsMaterial, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial.GetInstanceID(), false)); Assert.AreEqual(2, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial); } }