namespace textUtility { using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpriteInfo { #region Config public Sprite Sprite; public SpriteSetting SpriteSetting; public List UVs { get { if (uvs.Count == 0) { Vector2 upperLeft = new Vector2(Sprite.rect.xMin / Sprite.texture.width, Sprite.rect.yMax / Sprite.texture.height); Vector2 upperRight = new Vector2(Sprite.rect.xMax / Sprite.texture.width, Sprite.rect.yMax / Sprite.texture.height); Vector2 lowerRight = new Vector2(Sprite.rect.xMax / Sprite.texture.width, Sprite.rect.yMin / Sprite.texture.height); Vector2 lowerLeft = new Vector2(Sprite.rect.xMin / Sprite.texture.width, Sprite.rect.yMin / Sprite.texture.height); uvs.Add(upperLeft); uvs.Add(upperRight); uvs.Add(lowerRight); uvs.Add(lowerLeft); } return uvs; } set { uvs = value; } } public List uvs = new List(); #endregion public SpriteInfo(Sprite sprite, SpriteSetting spriteSetting = null) { Sprite = sprite; if (spriteSetting == null) { SpriteSetting = new SpriteSetting(); } else { SpriteSetting = spriteSetting; } } public float GetScaledWidth(float referenceHeight) { float scale = (referenceHeight / Sprite.rect.height) * SpriteSetting.Scale; return Sprite.rect.width * scale; } public float GetScaledHeight(float referenceWidth) { float scale = (referenceWidth / Sprite.rect.width) * SpriteSetting.Scale; return Sprite.rect.height * scale; } } }