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;
                    }
                }
            }
        }
Exemple #3
0
 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);
 }
Exemple #5
0
 //  アセットのラベルを全て削除します
 public void ClearLabels()
 {
     AssetDatabase.ClearLabels(Asset);
 }
Exemple #6
0
 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.");
    }