public static void DisableLibstAtPath(string path) { List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path); for (int i = 0; i < files.Count; i++) { var filePath = files[i]; //Make sure this is not a folder if (SA_AssetDatabase.IsValidFolder(filePath)) { continue; } //Already disabled if (SA_AssetDatabase.GetExtension(filePath).Equals(DISABLED_LIB_EXTENSION)) { continue; } string newFilePath; newFilePath = filePath + DISABLED_LIB_EXTENSION; float progress = (float)(i + 1) / (float)files.Count; string fileName = SA_AssetDatabase.GetFileName(newFilePath); EditorUtility.DisplayProgressBar("Stan's Assets.", "Packing: " + fileName, progress); SA_AssetDatabase.MoveAsset(filePath, newFilePath); SA_AssetDatabase.ImportAsset(newFilePath); } EditorUtility.ClearProgressBar(); }
public static void EnableLibsAtPath(string path) { List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path); for (int i = 0; i < files.Count; i++) { var file = files[i]; //Make sure this is not a folder if (SA_AssetDatabase.IsValidFolder(file)) { continue; } if (SA_AssetDatabase.GetExtension(file).Equals(DISABLED_LIB_EXTENSION)) { string newFileName = file.Replace(DISABLED_LIB_EXTENSION, string.Empty); string fileName = SA_AssetDatabase.GetFileName(newFileName); float progress = (float)(i + 1) / (float)files.Count; EditorUtility.DisplayProgressBar("Stan's Assets.", "Installing: " + fileName, progress); SA_AssetDatabase.MoveAsset(file, newFileName); SA_AssetDatabase.ImportAsset(newFileName); } } EditorUtility.ClearProgressBar(); }
private static void ResolveInternalLibs(AN_AndroidBuildRequirements requirements) { List <string> libsToAdd = new List <string>(); List <string> libsToRemove = new List <string>(); List <string> internalLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_INTERNAL_FOLDER); foreach (var lib in internalLibs) { string libName = SA_AssetDatabase.GetFileName(lib); if (!requirements.HasInternalLib(libName)) { libsToRemove.Add(libName); } } foreach (var lib in requirements.InternalLibs) { string libPath = AN_Settings.ANDROID_INTERNAL_FOLDER + lib; if (!SA_AssetDatabase.IsFileExists(libPath)) { libsToAdd.Add(lib); } } SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_INTERNAL_FOLDER, libsToRemove); SA_PluginsEditor.InstallLibs(AN_Settings.ANDROID_INTERNAL_FOLDER_DISABLED, AN_Settings.ANDROID_INTERNAL_FOLDER, libsToAdd); }
private void ValidateAssets <T>(List <T> assets, string requiredLocation, string requiredExtension) where T : Object { //Let's make sure we aren't missing assets under requiredLocation var assetPaths = SA_AssetDatabase.FindAssetsWithExtentions(requiredLocation, requiredExtension); foreach (var assetPath in assetPaths) { var assetExtension = SA_PathUtil.GetExtension(assetPath); if (assetExtension.Equals(requiredExtension)) { var file = (T)AssetDatabase.LoadAssetAtPath(assetPath, typeof(T)); if (!assets.Contains(file)) { assets.Add(file); return; } } } for (var i = 0; i < assets.Count; i++) { var asset = assets[i]; if (asset == null) { //We do not allow null element's unless this is a last element if (i != assets.Count - 1) { assets.Remove(asset); return; } continue; } if (!HasValidExtension(asset, requiredExtension)) { EditorGUILayout.HelpBox(asset.name + " need to be in *" + requiredExtension + " format.", MessageType.Error); continue; } if (!SA_AssetDatabase.IsAssetInsideFolder(asset, requiredLocation)) { EditorGUILayout.HelpBox(asset.name + " has to be inside: \n" + requiredLocation, MessageType.Error); using (new SA_GuiBeginHorizontal()) { GUILayout.FlexibleSpace(); var move = GUILayout.Button("Move", EditorStyles.miniButton); if (move) { var currentPath = AssetDatabase.GetAssetPath(asset); var assetName = SA_AssetDatabase.GetFileName(currentPath); var newPath = requiredLocation + assetName; SA_AssetDatabase.MoveAsset(currentPath, newPath); } } } } }
private static void ResolveBinaryLibs(AN_AndroidBuildRequirements requirements) { if (AN_Settings.Instance.UseUnityJarResolver) { AN_Dependencies.Resolve(requirements.BinaryDependencies); SA_AssetDatabase.DeleteAsset(AN_Settings.ANDROID_MAVEN_FOLDER); } else { AN_Dependencies.Resolve(new List <AN_BinaryDependency>()); List <string> repositorysToAdd = new List <string>(); List <string> repositorysToRemove = new List <string>(); List <string> mavenLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_MAVEN_FOLDER); foreach (var lib in mavenLibs) { //we are only interested in folder, we also assume all folders are located inside a root folder if (!SA_AssetDatabase.IsValidFolder(lib)) { continue; } string libName = SA_AssetDatabase.GetFileName(lib); if (!requirements.HasBinaryDependency(libName)) { repositorysToRemove.Add(libName); } } foreach (var dep in requirements.BinaryDependencies) { string libPath = AN_Settings.ANDROID_MAVEN_FOLDER + dep.GetLocalRepositoryName(); if (!SA_AssetDatabase.IsDirectoryExists(libPath)) { string localRepositoryName = dep.GetLocalRepositoryName(); if (!repositorysToAdd.Contains(localRepositoryName)) { repositorysToAdd.Add(localRepositoryName); } } } SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_MAVEN_FOLDER, repositorysToRemove); foreach (var lib in repositorysToAdd) { string source = AN_Settings.ANDROID_MAVEN_FOLDER_DISABLED + lib; string destination = AN_Settings.ANDROID_MAVEN_FOLDER + lib; SA_PluginsEditor.InstallLibFolder(source, destination); } } }