Exemplo n.º 1
0
    public List <AtlasInfoForSearchSprite> VagueSearchAtlasWithSpecifySprite(string spriteName)
    {
        List <AtlasInfoForSearchSprite> atlasInfoTbl = new List <AtlasInfoForSearchSprite>();

        if (string.IsNullOrEmpty(spriteName))
        {
            return(null);
        }

        string[] paths = AssetDatabase.GetAllAssetPaths();

        for (int index = 0; index < paths.Length; index++)
        {
            GameObject atlasObj = null;
            if (UtilityForNGUI.IsAtlasPrefab(paths[index], out atlasObj))
            {
                if (null == atlasObj)
                {
                    continue;
                }

                AtlasInfoForSearchSprite newInfo = new AtlasInfoForSearchSprite();
                newInfo.AtlasPath    = paths[index];
                newInfo.AtlasTexture = UtilityForNGUI.GetAtlasTexture(atlasObj);
                //newInfo.SpriteInfo = UtilityForNGUI.GetSpriteInfo(atlasObj);
                newInfo.SpriteInfo = VagueGetSpriteInfoInAtlas(spriteName, atlasObj);

                if (
                    (newInfo.SpriteInfo != null) &&
                    (newInfo.SpriteInfo.Count != 0)
                    )
                {
                    atlasInfoTbl.Add(newInfo);
                }
                //if (IsSpriteInAtlas(spriteName, newInfo))
                //{
                //    atlasInfoTbl.Add(newInfo);
                //}
            }
        }

        return(atlasInfoTbl);
    }
Exemplo n.º 2
0
    private bool IsSpriteInAtlas(string spriteName, AtlasInfoForSearchSprite atlasInfo)
    {
        bool bRet = false;

        if (
            string.IsNullOrEmpty(spriteName) ||
            (null == atlasInfo)
            )
        {
            return(false);
        }

        Rect spriteRect = new Rect();

        if (atlasInfo.SpriteInfo.TryGetValue(spriteName, out spriteRect))
        {
            bRet = true;
        }

        return(bRet);
    }