static void SetDirBundleNameAndLabel(string[] dirs, string ext, string bundleName = "", string label = "") { var guids = new List <string>(AssetDatabase.FindAssets("", dirs)); Debug.Log(string.Format("in target dirs> count:{0}", guids.Count)); var pathList = guids.Select((guid) => { return(AssetDatabase.GUIDToAssetPath(guid)); }); var luaList = pathList.Where((path) => { return(path.EndsWith(ext)); }).ToList(); int i = 0; string[] labels = new string[] { label }; luaList.ForEach((path) => { string innerPath = path.Substring(path.IndexOf("Assets/", StringComparison.Ordinal)); var obj = AssetDatabase.LoadMainAssetAtPath(innerPath); AssetImporter importer = AssetImporter.GetAtPath(innerPath); if (importer != null) { importer.assetBundleName = bundleName; } if (obj != null) { AssetDatabase.ClearLabels(obj); AssetDatabase.SetLabels(obj, labels); } float progress = (float)i++ / luaList.Count; EditorUtility.DisplayProgressBar("SetDirBundleName", "Scanning..." + progress * 100 + "%", progress); }); }
public override void Create() { if (LogEntries.HasErrors()) { throw new Exception("Please fix compile errors first"); } var files = AssetDb.FindByLabel("BuildNewService"); using (var assets = AssetEditor.Instance) { var assetNames = new List <string>(); foreach (string filePath in files) { var dir = Path.GetDirectoryName(filePath); var assetName = Path.GetFileNameWithoutExtension(filePath); var scriptPath = $"{dir}/{assetName}.cs"; var monoScript = AssetDb.Load <MonoScript>(scriptPath); var assetPath = $"{dir}/{assetName}.asset"; if (!File.Exists(assetPath)) { Debug.Log($"Building {assetPath}"); assetNames.Add(assetName); var match = namespaceRegex.Match(monoScript.text); var nameSpace = match.Success ? match.Groups[1].Value : ""; assets.Add(assetName, nameSpace, assetPath); } AssetDatabase.ClearLabels(monoScript); } Environment mockEnvironment = AssetDatabase.LoadAssetAtPath <Environment>("Assets/Askowl/Decoupler/Scripts/Environments/Mock.asset"); foreach (var assetName in assetNames) { var assetPath = assets.AssetPath(assetName); var path = Path.GetDirectoryName(assetPath); var nameBase = Path.GetFileNameWithoutExtension(path); switch (assets.Asset(assetName)) { case IServicesManager _: assets .SetFieldToAssetEditorEntry(assetName, "context", $"{nameBase}Context") .InsertIntoArrayField(assetName, "services", $"{nameBase}ServiceForMock"); break; case IContext _: assets.SetField(assetName, "environment", mockEnvironment); break; case IServiceAdapter _: // var contextName = $"{nameBase}Context"; // if (!assets.Exists(contextName)) assets.Load(contextName, Namespace(assetPath), path); // assets.SetFieldToAssetEditorEntry(assetName, "context", $"{nameBase}Context"); break; } } } }
static void ClearLabels() { Undo.RegisterSceneUndo("rtools"); foreach (var asset in Selection.objects) { if (AssetDatabase.IsMainAsset(asset)) { AssetDatabase.ClearLabels(asset); EditorUtility.SetDirty(asset); } } }
public static void RemoveAllLabels(this UnityEngine.Object obj) { AssetDatabase.ClearLabels(obj); }
// アセットのラベルを全て削除します public void ClearLabels() { AssetDatabase.ClearLabels(Asset); }
public void ClearLabels(UnityEngine.Object asset) { AssetDatabase.ClearLabels(asset); CallMethod("InvalidateLabels"); }
public static void ClearLabels(this Object asset) { AssetDatabase.ClearLabels(asset); }
public override IEnumerator Execute(UTContext context) { var files = UTFileUtils.CalculateFileset(EvaluateAll(includes, context), EvaluateAll(excludes, context)); UTFileUtils.FullPathToProjectPath(files); // repath them to be relative to project root var doAmend = amend.EvaluateIn(context); var theLabels = EvaluateAll(labels, context); Debug.Log("The labels: " + string.Join(", ", theLabels)); if (doAmend && theLabels.Length == 0) { Debug.LogWarning("Amend is set to true but no labels are specified. This will effectively change nothing."); yield break; } Debug.Log("Updating the labels of " + files.Length + " assets."); foreach (var file in files) { if (file.EndsWith(".meta")) { Debug.LogWarning("File set contains a meta file: " + file + ". Please exclude meta files from the fileset.", this); continue; } var asset = AssetDatabase.LoadAssetAtPath(file, typeof(UObject)); string[] finalLabels = theLabels; if (doAmend) { var currentLabels = AssetDatabase.GetLabels(asset); var knownLabels = new HashSet <string> (currentLabels); foreach (var aLabel in theLabels) { if (!knownLabels.Contains(aLabel)) { knownLabels.Add(aLabel); } } finalLabels = new string[knownLabels.Count]; knownLabels.CopyTo(finalLabels); } if (UTPreferences.DebugMode) { Debug.Log("Setting labels of " + file + " to [" + string.Join(", ", finalLabels) + "]", this); } if (finalLabels.Length == 0) { AssetDatabase.ClearLabels(asset); } else { AssetDatabase.SetLabels(asset, finalLabels); } EditorUtility.SetDirty(asset); yield return(""); } AssetDatabase.SaveAssets(); // save asset changes. Debug.Log("Assets successfully updated."); }