SpriteSwapTransitions.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. #pragma warning disable 0649 // disable "never assigned" warnings
  8. namespace TheraBytes.BetterUi
  9. {
  10. [Serializable]
  11. public class SpriteSwapTransitions : TransitionStateCollection<Sprite>
  12. {
  13. [Serializable]
  14. public class SpriteSwapTransitionState : TransitionState
  15. {
  16. public SpriteSwapTransitionState(string name, Sprite stateObject)
  17. : base(name, stateObject)
  18. { }
  19. }
  20. public override UnityEngine.Object Target { get { return target; } }
  21. [SerializeField]
  22. Image target;
  23. [SerializeField]
  24. List<SpriteSwapTransitionState> states = new List<SpriteSwapTransitionState>();
  25. public SpriteSwapTransitions(params string[] stateNames)
  26. : base(stateNames)
  27. {
  28. }
  29. protected override void ApplyState(TransitionState state, bool instant)
  30. {
  31. if (this.Target == null)
  32. return;
  33. target.overrideSprite = state.StateObject;
  34. }
  35. internal override void AddStateObject(string stateName)
  36. {
  37. var obj = new SpriteSwapTransitionState(stateName, null);
  38. this.states.Add(obj);
  39. }
  40. protected override IEnumerable<TransitionState> GetTransitionStates()
  41. {
  42. foreach (var s in states)
  43. yield return s;
  44. }
  45. internal override void SortStates(string[] sortedOrder)
  46. {
  47. base.SortStatesLogic(states, sortedOrder);
  48. }
  49. }
  50. }