private void OnCheckAtlas() { _selectHit = null; _selectSpriteName = ""; HitManager.Clear(); List <Object> prefabList = GetPrefabs(); foreach (Object obj in prefabList) { GameObject go = obj as GameObject; List <UISprite> sprites = PrefabSpriteManager.GetAllSprite(go); foreach (UISprite sprite in sprites) { if (sprite.atlas != _targetAtlas) { continue; } foreach (UISpriteData data in _targetAtlas.spriteList) { HitManager managr = HitManager.GetManager(data.name); if (sprite.spriteName != data.name) { continue; } string path = GameObjectExt.GetHierarchyWithRoot(sprite.transform, go.transform); managr.SetEditPrefab(go); managr.AddHit(path); } } } }
/// <summary> /// 检查全部 /// </summary> private void OnCheckSameFile(List <string> validList = null) { InitSame(); UpdateSizeHitDct(validList); foreach (List <string> list in _size2Filenames.Values) { if (list != null && list.Count > 1) { UpdateHashHitFiles(list, validList); } } HitManager.Clear(); //初始化 PrefabSpriteManager.InitAndCheck(); foreach (List <string> list in _hash2Filenames.Values) { if (list == null || list.Count <= 1) { continue; } foreach (string filename in list) { string filePath = filename; if (!PrefabSpriteManager.pngName2Refs.ContainsKey(filePath)) { continue; } var spriteDataList = PrefabSpriteManager.pngName2Refs[filePath]; HitManager managr = HitManager.GetManager(filePath); foreach (var spriteData in spriteDataList) { managr.SetEditPrefab(spriteData.prefabName, spriteData.uiPath); managr.AddHit(spriteData.spriteUIPath); } } } _sameCount = 0; foreach (List <string> list in _hash2Filenames.Values) { if (list != null && list.Count > 1) { _sameCount++; } } Debug.Log(string.Format("重复数为:{0}", _sameCount)); _refCount = 0; foreach (var manager in HitManager.GetAllManagers()) { _refCount += manager.hitTotal; } Debug.Log(string.Format("UI引用数为:{0}", _refCount)); }