UIImageSwitchSprite.cs 882 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. [RequireComponent(typeof(Image))]
  6. public class UIImageSwitchSprite : MonoBehaviour
  7. {
  8. [SerializeField]
  9. private Sprite[] m_Sprites;
  10. private Image m_Image;
  11. private void Awake()
  12. {
  13. m_Image = GetComponent<Image>();
  14. }
  15. public void ChangeSprite(string spriteName)
  16. {
  17. if (m_Sprites == null || string.IsNullOrEmpty(spriteName)) return;
  18. for(int idx =0; idx < m_Sprites.Length;idx++)
  19. {
  20. if (m_Sprites[idx] != null && m_Sprites[idx].name == spriteName)
  21. m_Image.sprite = m_Sprites[idx];
  22. }
  23. }
  24. public void ChangeSprite(int spriteIdx)
  25. {
  26. if (m_Sprites == null) return;
  27. if (m_Sprites[spriteIdx] == null) return;
  28. m_Image.sprite = m_Sprites[spriteIdx];
  29. }
  30. }