SpriteInfo.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. namespace textUtility
  2. {
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. public class SpriteInfo
  7. {
  8. #region Config
  9. public Sprite Sprite;
  10. public SpriteSetting SpriteSetting;
  11. public List<Vector2> UVs
  12. {
  13. get
  14. {
  15. if (uvs.Count == 0)
  16. {
  17. Vector2 upperLeft = new Vector2(Sprite.rect.xMin / Sprite.texture.width, Sprite.rect.yMax / Sprite.texture.height);
  18. Vector2 upperRight = new Vector2(Sprite.rect.xMax / Sprite.texture.width, Sprite.rect.yMax / Sprite.texture.height);
  19. Vector2 lowerRight = new Vector2(Sprite.rect.xMax / Sprite.texture.width, Sprite.rect.yMin / Sprite.texture.height);
  20. Vector2 lowerLeft = new Vector2(Sprite.rect.xMin / Sprite.texture.width, Sprite.rect.yMin / Sprite.texture.height);
  21. uvs.Add(upperLeft);
  22. uvs.Add(upperRight);
  23. uvs.Add(lowerRight);
  24. uvs.Add(lowerLeft);
  25. }
  26. return uvs;
  27. }
  28. set { uvs = value; }
  29. }
  30. public List<Vector2> uvs = new List<Vector2>();
  31. #endregion
  32. public SpriteInfo(Sprite sprite, SpriteSetting spriteSetting = null)
  33. {
  34. Sprite = sprite;
  35. if (spriteSetting == null)
  36. {
  37. SpriteSetting = new SpriteSetting();
  38. }
  39. else
  40. {
  41. SpriteSetting = spriteSetting;
  42. }
  43. }
  44. public float GetScaledWidth(float referenceHeight)
  45. {
  46. float scale = (referenceHeight / Sprite.rect.height) * SpriteSetting.Scale;
  47. return Sprite.rect.width * scale;
  48. }
  49. public float GetScaledHeight(float referenceWidth)
  50. {
  51. float scale = (referenceWidth / Sprite.rect.width) * SpriteSetting.Scale;
  52. return Sprite.rect.height * scale;
  53. }
  54. }
  55. }