UISpiritLoader.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class UISpiritLoader : MonoBehaviour
  4. {
  5. public bool Ratio;
  6. public MyImage Image;
  7. private Vector2 ImageSizeData;
  8. private Vector2 LoaderSizeData;
  9. [ContextMenu("SetLoaderSpirit")]
  10. public void SetLoaderSpirit()
  11. {
  12. //Image.SetNativeSize();
  13. Image.GetComponent<RectTransform>().localScale = new Vector3(1, 1, 1);
  14. LoaderSizeData = GetComponent<RectTransform>().sizeDelta;
  15. ImageSizeData = Image.GetComponent<RectTransform>().sizeDelta;
  16. if (Ratio)
  17. {
  18. if (LoaderSizeData.x > LoaderSizeData.y)
  19. {
  20. float ys = LoaderSizeData.y / ImageSizeData.y;
  21. Image.GetComponent<RectTransform>().localScale = new Vector3(ys, ys, ys);
  22. }
  23. else
  24. {
  25. float xs = LoaderSizeData.x / ImageSizeData.x;
  26. Image.GetComponent<RectTransform>().localScale = new Vector3(xs, xs, xs);
  27. }
  28. Image.GetComponent<RectTransform>().localPosition = Vector3.zero;
  29. }
  30. }
  31. }