Exemplo n.º 1
0
        /// <summary>
        /// 删除所有预制体上有guid的miss脚本引用
        /// </summary>
        void DeleteMissScriptWithGUID()
        {
            Dictionary <string, HashSet <string> >            guid2prefab        = null;
            Dictionary <string, Dictionary <string, string> > prefab2guid2fileID = null;
            var referenceGuids = GetMissScriptGUID(out guid2prefab, out prefab2guid2fileID);
            int i = 0;

            foreach (var scriptGUID in referenceGuids)
            {
                EditorUtility.DisplayProgressBar("Processing...", "清理有guid的miss脚本中....", i++ / (float)referenceGuids.Count);
                var prefabLst = guid2prefab[scriptGUID];
                foreach (var prefabPath in prefabLst)
                {
                    var fileID2guid = prefab2guid2fileID[prefabPath];
                    foreach (var item in fileID2guid)
                    {
                        if (item.Value == scriptGUID)
                        {
                            var scriptFileID = item.Key;
                            DeleteMissScriptTool.DeleteMissScript(prefabPath, scriptFileID);
                            Debug.LogFormat("prefab:{0},script:{1},guid:{2}", prefabPath, scriptFileID, scriptGUID);
                        }
                    }
                }
            }

            EditorUtility.ClearProgressBar();
        }
Exemplo n.º 2
0
        public static void Func2()
        {
            var prefabPath   = "F:/WorkFolder/master/client/GameClient_UI/Assets/Resources/prefab/UIItems/Lab/ui_item_tech.prefab";
            var scriptFileID = "11418506";

            DeleteMissScriptTool.DeleteMissScript(prefabPath, scriptFileID);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 删除所有预制体上没有guid的miss脚本引用
        /// </summary>
        void DeleteMissScriptNoGUID()
        {
            string[] prefabGuids = AssetDatabase.FindAssets("t:Prefab", new string[] { "Assets/Resources/prefab" });//获取所有预制体guid
            int      i           = 0;

            foreach (var prefabGUID in prefabGuids)
            {
                EditorUtility.DisplayProgressBar("Processing...", "清理没有guid的miss脚本中....", i++ / (float)prefabGuids.Length);
                var prefabPath      = DeleteMissScriptTool.GetPathByGUID(prefabGUID);//预制体全路径
                var scriptFileIDLst = DeleteMissScriptTool.GetScriptNoGUIDFileIDLst(prefabPath);

                foreach (var fileID in scriptFileIDLst)
                {
                    DeleteMissScriptTool.DeleteMissScript(prefabPath, fileID);
                    Debug.LogFormat("processed prefab no guid:{0}", prefabPath);
                }
            }
            EditorUtility.ClearProgressBar();
        }