Beispiel #1
0
        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            //Debug.Log( $"i:{importedAssets.Length}, d:{deletedAssets.Length}, ma:{movedAssets.Length}, mfap:{movedFromAssetPaths.Length}" );

            if (E.i.m_asmdefNameSync || E.i.m_asmdefAutoReferenceOFF)
            {
                var _asmdefNameSync         = E.i.m_asmdefNameSync;
                var _asmdefAutoReferenceOFF = E.i.m_asmdefAutoReferenceOFF;
                foreach (var p in importedAssets)
                {
                    if (p[0] == 'P')
                    {
                        continue;
                    }
                    if (!p.EndsWith(".asmdef"))
                    {
                        continue;
                    }

                    bool dirty  = false;
                    var  asmdef = p.LoadAsset <AssemblyDefinitionAsset>();
                    var  json   = (Dictionary <string, object>)UnityEditorJson.Deserialize(asmdef.text);

                    if (_asmdefNameSync)
                    {
                        var fname = p.FileNameWithoutExtension();
                        if ((string)json["name"] != fname)
                        {
                            json["name"] = fname;
                            dirty        = true;
                        }
                    }
                    if (_asmdefAutoReferenceOFF)
                    {
                        if (json.ContainsKey("autoReferenced"))
                        {
                            if ((bool)json["autoReferenced"])
                            {
                                json["autoReferenced"] = false;
                                dirty = true;
                            }
                        }
                        else
                        {
                            json.Add("autoReferenced", false);
                            dirty = true;
                        }
                    }
                    if (dirty)
                    {
                        fs.WriteAllText(p, EditorJson.Serialize(json, true), new UTF8Encoding(false));
                        AssetDatabase.ImportAsset(p);
                    }
                }
            }
        }
 public static void Save()
 {
     File.WriteAllText(kPATH, EditorJson.Serialize(s_manifest, true));
     AssetDatabase.Refresh();
 }