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); } } } }
public UIComponentInfo(GameObject go, Transform prefabRoot) { this.comType = "GameObject"; this.memberName = go.name; this.path = GameObjectExt.GetHierarchyWithRoot(go.transform, prefabRoot); uid = MD5Hashing.HashString(string.Format("{0}:{1}|{2}", prefabRoot.name, this.memberName, this.path)); }
public UIComponentInfo(Component component, Transform prefabRoot) { // this.com = component; this.comType = component.GetType().Name; this.memberName = string.Format("{0}_{1}", component.name, comType); this.path = GameObjectExt.GetHierarchyWithRoot(component.transform, prefabRoot); uid = MD5Hashing.HashString(string.Format("{0}:{1}|{2}", prefabRoot.name, this.memberName, this.path)); }
/* * private static string _cachePath; * public static string CachePath * { * get * { * if (_cachePath != null) * return _cachePath; * * string path = Application.dataPath; * _cachePath = path.Substring(0, path.LastIndexOf("/")) + "/PrefabSpriteInfo.txt"; * return _cachePath; * } * * } */ public static bool CheckUpdate(string root) { bool bChange = false; string[] strs = Directory.GetFiles(root, "*.prefab", SearchOption.AllDirectories); _prefabDct.Clear(); foreach (string name in strs) { string filename = name.Replace("\\", "/"); PrefabData prefabData; if (_prefabDct.ContainsKey(filename)) { prefabData = _prefabDct[filename]; } else { prefabData = new PrefabData(filename); _prefabDct.Add(filename, prefabData); } FileInfo file = new FileInfo(filename); System.TimeSpan ts = file.LastWriteTime - new System.DateTime(1970, 1, 1, 0, 0, 0, 0); string lastTime = System.Convert.ToInt64(ts.TotalSeconds).ToString(); //图集增加和删除可能会导致prefab.UISprite 的atlas属性变化 //所以这里每次都刷新了 //时间戳一样,忽略检测 //if (prefabData.lastTime == lastTime) // continue; prefabData.lastTime = lastTime; prefabData.ClearItem(); GameObject go = AssetDatabase.LoadMainAssetAtPath(filename) as GameObject; if (go == null) { continue; } var spriteList = GetAllSprite(go); foreach (UISprite sprite in spriteList) { SpriteData data = new SpriteData(); data.uiPath = filename; data.spriteName = sprite.spriteName; data.prefabName = go.name; if (sprite.atlas != null) { data.atlasName = sprite.atlas.name; data.atlasPath = AssetDatabase.GetAssetPath(sprite.atlas); data.atlasPath = data.atlasPath.Replace("\\", "/"); } data.spriteUIPath = GameObjectExt.GetHierarchyWithRoot(sprite.transform, go.transform); prefabData.AddItem(data); } bChange = true; } return(bChange); }