Exemplo n.º 1
0
        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);
                    });
                }
            });
        }