private void RecreateSprite()
    {
        if (Sprite != null)
        {
            UnityEngine.Object.Destroy(Sprite);
        }

        int longerDimension = Mathf.Max(Texture.width, Texture.height);

        Sprite = Sprite.Create(Texture, new Rect(0, 0, Texture.width, Texture.height), Vector2.one * 0.5f, pixelsPerUnit: longerDimension);
        SpriteUpdated?.Invoke(Sprite);
    }
Exemple #2
0
        private IEnumerator LoadSprite(string url)
        {
            Sprite sprite = null;

            const int maxUploadAttempts = 5;
            int       attemptsCounter   = 0;

            while (attemptsCounter < maxUploadAttempts)
            {
                using (WWW loadSpriteWww = new WWW(url))
                {
                    yield return(loadSpriteWww);

                    if (loadSpriteWww.texture != null)
                    {
                        Rect    spriteRect  = new Rect(0, 0, loadSpriteWww.texture.width, loadSpriteWww.texture.height);
                        Vector2 spritePivot = new Vector2(0, 0);

                        sprite = Sprite.Create(loadSpriteWww.texture, spriteRect, spritePivot);
                        _loadedSprites[url].Sprite = sprite;

                        break;
                    }
                }

                attemptsCounter++;
            }

            if (attemptsCounter >= maxUploadAttempts)
            {
                DevLogger.Warning(string.Format("Sprite not loaded by {0} attempts. Url:\n {1}", attemptsCounter, url));
            }

            SpriteUpdated.SafeRaise(url, sprite);
            yield return(null);
        }