/////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// MergeAllDecals /// # Merge all decals in scene /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////// void MergeAllDecals() { GenericMeshDecal[] actualDecalsInSceneList = (GenericMeshDecal[])GameObject.FindObjectsOfType(typeof(GenericMeshDecal)); List <GameObject> actualDecalsInSceneGameObjectList = new List <GameObject> (); for (int i = 0; i < actualDecalsInSceneList.Count(); i++) { Undo.RegisterFullObjectHierarchyUndo(actualDecalsInSceneList [i], "Merge decals: delete originals"); GenericMeshDecal actualDecal = actualDecalsInSceneList [i].gameObject.GetComponent <GenericMeshDecal> (); if (actualDecal) { actualDecalsInSceneGameObjectList.Add(actualDecal.gameObject); } } if (actualDecalsInSceneGameObjectList.Count > 0) { MeshMergerer.Merge(actualDecalsInSceneGameObjectList, mergedObjectName, deleteOldDecals); } else { EditorUtility.DisplayDialog("ERROR", "There are not decals in scene", "OK"); } }
/////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// MergeActualSelectedDecals /// # Merge actual selected decals into one /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////// void MergeActualSelectedDecals() { List <GameObject> selectedMeshDecalsList = new List <GameObject> (); for (int i = 0; i < Selection.gameObjects.Count(); i++) { GenericMeshDecal actualSelectedDecal = Selection.gameObjects [i].GetComponent <GenericMeshDecal> (); if (actualSelectedDecal) { selectedMeshDecalsList.Add(actualSelectedDecal.gameObject); } } if (selectedMeshDecalsList.Count > 0) { MeshMergerer.Merge(selectedMeshDecalsList, mergedObjectName, deleteOldDecals); } else { EditorUtility.DisplayDialog("ERROR", "You need a texture to create a decal", "OK"); } }