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); }
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); }