public void DuplicateFaces_ToSubmesh() { //Make first faces selected ProBuilderMesh mesh = selectables[0]; Assume.That(mesh.faces, Is.Not.Null); Face face = selectables[0].faces[0]; List <Face> selectedFaces = new List <Face>(); selectedFaces.Add(face); mesh.SetSelectedFaces(selectedFaces); Assert.AreEqual(mesh.selectedFaceCount, 1); MeshSelection.SetSelection(mesh.gameObject); MeshSelection.OnObjectSelectionChanged(); UnityEditor.ProBuilder.Actions.DuplicateFaces duplicateFaces = new UnityEditor.ProBuilder.Actions.DuplicateFaces(); ProBuilderSettings.Set <UnityEditor.ProBuilder.Actions.DuplicateFaces.DuplicateFaceSetting>("DuplicateFaces.target", UnityEditor.ProBuilder.Actions.DuplicateFaces.DuplicateFaceSetting.Submesh); duplicateFaces.PerformAction(); //All selectable object should have all faces selected Assert.AreEqual(selectables[0].faces.Count, 7); Assert.AreEqual(MeshSelection.selectedObjectCount, 1); Assert.AreEqual(UnityEditor.Selection.objects[0], mesh.gameObject); }
public void DuplicateFaces_ToObject() { //Make first faces selected ProBuilderMesh mesh = selectables[0]; Assume.That(mesh.faces, Is.Not.Null); Face face = selectables[0].faces[0]; List <Face> selectedFaces = new List <Face>(); selectedFaces.Add(face); mesh.SetSelectedFaces(selectedFaces); Assert.AreEqual(mesh.selectedFaceCount, 1); MeshSelection.SetSelection(mesh.gameObject); MeshSelection.OnObjectSelectionChanged(); UnityEditor.ProBuilder.Actions.DuplicateFaces duplicateFaces = new UnityEditor.ProBuilder.Actions.DuplicateFaces(); ProBuilderSettings.Set <UnityEditor.ProBuilder.Actions.DuplicateFaces.DuplicateFaceSetting>("DuplicateFaces.target", UnityEditor.ProBuilder.Actions.DuplicateFaces.DuplicateFaceSetting.GameObject); duplicateFaces.PerformAction(); //selectable object should keep all faces selected Assert.AreEqual(selectables[0].faces.Count, 6); Assert.AreEqual(MeshSelection.selectedObjectCount, 1); Assert.AreNotEqual(UnityEditor.Selection.objects[0], mesh.gameObject); //This needs to be called explicitly in the case of unit test so that the internal representation of ProBuilder MeshSelection //gets updated prior to accessing it MeshSelection.OnObjectSelectionChanged(); ProBuilderMesh newMesh = MeshSelection.activeMesh; Assert.AreEqual(newMesh.faces.Count, 1); }