コード例 #1
0
        void RenameAssets()
        {
            using (var prog = new ProgressBarScope("Save - AssetName", m_root.children.Count + 1)) {
                foreach (var p in m_asmdefItems)
                {
                    prog.Next(p.displayName);
                    bool dirty = false;
                    if (p.id == renameItem.id)
                    {
                        continue;
                    }

                    foreach (var pp in p.参照しているasmdefのリスト)
                    {
                        if (renameItem.guid == pp.guid)
                        {
                            //Debug.Log( $"{p.displayName} : {pp.asmname}" );
                            pp.asmDefの名前 = renameItem.displayName;
                            dirty        = true;
                        }
                    }
                    if (dirty)
                    {
                        var s = p.参照しているasmdefのリスト.Where(x => x.toggle).Select(x => x.asmDefの名前).ToArray();
                        p.m_json.references = s;
                        var ss = p.参照しているasmdefのリスト.Where(x => !x.toggle).Select(x => x.asmDefの名前).ToArray();
                        p.m_json.referencesBackup = ss;
                        p.m_json.Save();
                    }
                }

                prog.Next(renameItem.displayName);

                renameItem.m_json.Save(renameItem.displayName);
            }
            AssetDatabase.Refresh();
        }
コード例 #2
0
        public static void ForceReserializeAssets(object context)
        {
#if UNITY_2017_3_OR_NEWER
            var value = context.ContextToAssetPath();

            if (value.IsExistsFile())
            {
                AssetDatabase.ForceReserializeAssets(new string[] { value });
            }
            else
            {
                var objs = AssetDatabase.FindAssets("t:Object", new string[] { value }).Select(x => x.ToAssetPath()).ToArray();
                using (var prog = new ProgressBarScope("ForceReserializeAssets", objs.Length)) {
                    foreach (var path in objs)
                    {
                        prog.Next(path);
                        AssetDatabase.ForceReserializeAssets(new string[] { path });
                    }
                }
            }
#else
            Debug.LogError("Available after UNITY_2017_3_OR_NEWER.");
#endif
        }
コード例 #3
0
 public void SaveAssetDirty()
 {
     using (var prog = new ProgressBarScope("Save - AssetName", m_root.children.Count)) {
         foreach (var p in m_asmdefItems)
         {
             prog.Next(p.displayName);
             if (!p.isDIRTY)
             {
                 continue;
             }
             if (p.changeFormat == 1)
             {
                 p.isGUID = false;
             }
             else if (p.changeFormat == 2)
             {
                 p.isGUID = true;
             }
             Apply(p);
             //}
         }
         AssetDatabase.Refresh();
     }
 }