public void FindSpriteInAtlas(Action <string, string, float> progressAction) { List <string> atlasPaths = (from path in m_BundleAssetPathList where Path.GetExtension(path).ToLower() == ".spriteatlas" select path).ToList(); int m_FindIndex = 0; atlasPaths.ForEach((atlasPath) => { progressAction?.Invoke("Find Sprite In Atlas", atlasPath, m_FindIndex / (float)m_BundleAssetPathList.Count); m_FindIndex++; SpriteAtlas atlas = AssetDatabase.LoadAssetAtPath <SpriteAtlas>(atlasPath); if (atlas != null) { string[] spriteInAtlas = SpriteAtlasUtility.GetDependAssets(atlas); Array.ForEach(spriteInAtlas, spritePath => { m_SpriteInAtlasDic.Add(spritePath, atlasPath); }); } }); }