public void SelectMaterial_WithNullMaterial() { //Make first faces selected ProBuilderMesh mesh = selectables[0]; MeshSelection.SetSelection(mesh.gameObject); mesh.AddToFaceSelection(3); MeshSelection.OnObjectSelectionChanged(); UnityEditor.ProBuilder.Actions.SelectMaterial selectMaterial = new UnityEditor.ProBuilder.Actions.SelectMaterial(); var oldValue = selectMaterial.m_RestrictToSelectedObjects.value; selectMaterial.m_RestrictToSelectedObjects.value = false; selectMaterial.PerformAction(); selectMaterial.m_RestrictToSelectedObjects.value = oldValue; //We need to force the object selection change here to ensure that MeshSelection reflect the result //of the action, which typically would notify the MeshSelection asynchronously. MeshSelection.OnObjectSelectionChanged(); Assert.That(MeshSelection.selectedObjectCount, Is.EqualTo(1)); Assert.That(mesh.selectedFaceCount, Is.EqualTo(3)); Assert.That(mesh.selectedFaceIndexes.IndexOf(3), !Is.EqualTo(-1)); Assert.That(mesh.selectedFaceIndexes.IndexOf(4), !Is.EqualTo(-1)); Assert.That(mesh.selectedFaceIndexes.IndexOf(5), !Is.EqualTo(-1)); Assert.That(selectables[1].selectedFaceCount, Is.EqualTo(0)); }
public void Setup() { ProBuilderMesh shape1 = ShapeFactory.Instantiate <Cube>(); shape1.transform.position = Vector3.zero - shape1.GetComponent <MeshRenderer>().bounds.center; ProBuilderMesh shape2 = ShapeFactory.Instantiate <Cube>(); shape2.transform.position = Vector3.zero - shape2.GetComponent <MeshRenderer>().bounds.center; shape1.AddToFaceSelection(0); shape1.AddToFaceSelection(1); shape1.AddToFaceSelection(2); shape1.SetMaterial(shape1.GetSelectedFaces(), BuiltinMaterials.facePickerMaterial); shape1.ClearSelection(); shape1.AddToFaceSelection(3); shape1.AddToFaceSelection(4); shape1.AddToFaceSelection(5); shape1.SetMaterial(shape1.GetSelectedFaces(), null); shape1.ClearSelection(); shape2.AddToFaceSelection(0); shape2.AddToFaceSelection(1); shape2.AddToFaceSelection(2); shape2.SetMaterial(shape2.GetSelectedFaces(), BuiltinMaterials.colliderMaterial); shape2.ClearSelection(); shape2.AddToFaceSelection(3); shape2.AddToFaceSelection(4); shape2.AddToFaceSelection(5); shape2.SetMaterial(shape2.GetSelectedFaces(), BuiltinMaterials.facePickerMaterial); shape2.ClearSelection(); selectables = new ProBuilderMesh[] { shape1, shape2 }; }