static bool UndoFolderInDirectory(string directory) { // Get the Textures folder. Stop if there isn't one. string texturesDirectory = directory + "/Textures"; if (!Directory.Exists(texturesDirectory)) { return(false); } // Move all textures out of the Textures folder. string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, SavingUtilities.GetCurrentFolderPath()); foreach (var texturePath in texturePaths) { AssetDatabase.MoveAsset(texturePath, directory + "/" + Path.GetFileName(texturePath)); } // Delete the Textures folder if it is now empty. if (Directory.GetFiles(texturesDirectory).Length < 1) { Directory.Delete(texturesDirectory); } AssetDatabase.Refresh(); return(true); }
static void CreateFolderInCurrentDirectory() { // Try to create a Textures folder in the current directory. if (!CreateFolderInDirectory(SavingUtilities.GetCurrentFolderPath())) { Debug.Log("No textures in directory."); } }
static void UndoFolderInCurrentDirectory() { // Try to undo the Textures folder in the current directory. if (!UndoFolderInDirectory(SavingUtilities.GetCurrentFolderPath())) { Debug.Log("No Textures folder found to undo."); } }
static void UndoFolderInCurrentChildrenDirectories() { // Remove all Textures folders under first-child directories. string[] directories = Directory.GetDirectories(SavingUtilities.GetCurrentFolderPath()); foreach (var directory in directories) { UndoFolderInDirectory(directory); } }
static void CreateFoldersInCurrentChildrenDirectories() { // Create Textures folders under all first-child directories. string[] directories = Directory.GetDirectories(SavingUtilities.GetCurrentFolderPath()); foreach (var directory in directories) { CreateFolderInDirectory(directory); } }
static void PermuteTexturesOnSelectionObjects(Object[] materials, string extension, string folderPath) { // Get all textures in current directory. string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, folderPath); for (int i = 0; i < materials.Length; i++) { PermuteTexturesOnMaterialWithPaths((Material)materials[i], extension, folderPath, texturePaths); } }
public void AppendToFile(string filepath) { FileInfo file = new FileInfo(filepath); if (SavingUtilities.IsFileLocked(file)) { MessageBox.Show("\"" + file.Name + "\" could not be saved. Maybe it is opened somewhere.", new MessageBoxCallback[] { new MessageBoxCallback(MessageBoxCallbackType.Cancel), new MessageBoxCallback(MessageBoxCallbackType.Retry, () => AppendToFile(filepath)) }); return; } using (StreamWriter sw = new StreamWriter(filepath, true)) sw.WriteLine(Content, Encoding.UTF8); }
static void ToPNGInDirectory(string directory) { // Get all .tga textures. string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, directory); List <string> tgaTexturesPaths = new List <string>(); foreach (string texturePath in texturePaths) { if (Path.GetExtension(texturePath).Equals(".tga", StringComparison.InvariantCultureIgnoreCase)) { tgaTexturesPaths.Add(texturePath); } } // Save all .tga textures to .png textures. List <Texture2D> tgaTextures = SavingUtilities.LoadAssetsInFolder <Texture2D>(tgaTexturesPaths.ToArray()); for (int i = 0; i < tgaTextures.Count; i++) { File.WriteAllBytes(directory + "/" + Path.GetFileName(tgaTexturesPaths[i]) + ".png", ImageConversion.EncodeToPNG(tgaTextures[i])); } }
static bool CreateFolderInDirectory(string directory) { // Get all texture paths in current folder. Stop if none are found. string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, SavingUtilities.GetCurrentFolderPath()); if (texturePaths.Length < 0) { return(false); } // Move all textures to a new (or existing) Textures folder. string newTexturesDirectory = directory + "/Textures/"; if (!Directory.Exists(newTexturesDirectory)) { Directory.CreateDirectory(newTexturesDirectory); AssetDatabase.Refresh(); } foreach (var texturePath in texturePaths) { AssetDatabase.MoveAsset(texturePath, newTexturesDirectory + Path.GetFileName(texturePath)); } return(true); }
public string WriteToFile(string filepath) { filepath = SavingUtilities.GetSafePath(filepath); File.WriteAllText(filepath, Content, Encoding.UTF8); return(filepath); }
static void PermuteToPNGs() { PermuteTexturesOnSelectionObjects(Selection.objects, ".png", SavingUtilities.GetCurrentFolderPath()); }
static void PermuteToTGAsOnCurrentMaterial() { PermuteTexturesOnSelectionObjects(Selection.objects, ".tga", SavingUtilities.GetCurrentFolderPath()); }
static void ToPNGInCurrentDirectory() { ToPNGInDirectory(SavingUtilities.GetCurrentFolderPath()); }