Пример #1
0
        private bool MatchFilter(Sprite sprite)
        {
            if (!MatchSearch(sprite.name))
            {
                return(false);
            }

            if (currentFilter.HasFlag(Filter.WithSizeWarnings))
            {
                return(false);
            }

            if (currentFilter.HasFlag(Filter.UsedInOneScene))
            {
                return(false);
            }

            if (currentFilter.HasFlag(Filter.UsedBiggerThanSpriteSize))
            {
                return(false);
            }

            if (currentFilter.HasFlag(Filter.UsedSmallerThanSpriteSize))
            {
                return(false);
            }

            if (currentFilter.HasFlag(Filter.UsedInMoreThanOneScene))
            {
                return(false);
            }

            if (currentFilter.HasFlag(Filter.InsideAnyAtlas))
            {
                if (AtlasCacheUtility.TryGetAtlasForSprite(sprite, out SpriteAtlas atlas))
                {
                    return(true);
                }
                return(false);
            }

            return(true);
        }
Пример #2
0
        public SpriteData(Sprite targetSprite)
        {
            cachedSprite      = targetSprite;
            spriteName        = cachedSprite.name;
            spriteTexturePath = AssetDatabase.GetAssetPath(cachedSprite);
            spriteTextureGUID = AssetDatabase.AssetPathToGUID(spriteTexturePath);

            if (string.Equals(spriteTexturePath, RESOURCES_UNITY_BUILTIN_EXTRA_PATH))
            {
                spriteUsageFlags |= SpriteUsageFlags.DefaultUnityAsset;
                return;
            }

            if (AtlasCacheUtility.TryGetAtlasForSprite(cachedSprite, out SpriteAtlas spriteAtlas))
            {
                cachedSpriteAtlas = spriteAtlas;
                spriteAtlasGUID   = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(spriteAtlas));
                if (AtlasCacheUtility.TryGetAtlasScale(spriteAtlas, out atlasScale))
                {
                    spriteUsageFlags |= SpriteUsageFlags.UsingScaledAtlasSize;
                }
            }
        }
Пример #3
0
        public void CheckAtlasData()
        {
            if (Sprite == null)
            {
                return;
            }

            cachedSpriteAtlas = null;
            spriteUsageFlags &= ~SpriteUsageFlags.UsingScaledAtlasSize;

            if (AtlasCacheUtility.TryGetAtlasForSprite(cachedSprite, out SpriteAtlas spriteAtlas))
            {
                cachedSpriteAtlas = spriteAtlas;
                atlasScale        = spriteAtlas.GetVariantScale();
                if (atlasScale != 1.0f)
                {
                    spriteUsageFlags |= SpriteUsageFlags.UsingScaledAtlasSize;
                }
            }
            else
            {
                cachedSpriteAtlas = null;
            }
        }