SpriteMapping.cs 858 B

12345678910111213141516171819202122232425
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using UnityEngine;
  4. namespace Assets.HeroEditor4D.Common.Scripts.CharacterScripts
  5. {
  6. /// <summary>
  7. /// Used to associate SpriteRenderer with SpriteCollection.
  8. /// </summary>
  9. public class SpriteMapping : MonoBehaviour
  10. {
  11. public string SpriteName;
  12. public List<string> SpriteNameFallback;
  13. /// <summary>
  14. /// Find sprite by SpriteName, then by SpriteNameIfNotFound. Return null if nothing found.
  15. /// </summary>
  16. public Sprite FindSprite(List<Sprite> sprites)
  17. {
  18. if (sprites == null || sprites.Count == 0) return null;
  19. return sprites.SingleOrDefault(i => i != null && i.name == SpriteName) ?? sprites.SingleOrDefault(i => i != null && SpriteNameFallback.Contains(i.name));
  20. }
  21. }
  22. }