LocationAnimationTransitions.cs 1.7 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 LocationAnimationTransitions : TransitionStateCollection<string>
  12. {
  13. [Serializable]
  14. public class LocationAnimationTransitionState : TransitionState
  15. {
  16. public LocationAnimationTransitionState(string name, string stateObject)
  17. : base(name, stateObject)
  18. { }
  19. }
  20. public override UnityEngine.Object Target { get { return target; } }
  21. [SerializeField]
  22. LocationAnimations target;
  23. [SerializeField]
  24. List<LocationAnimationTransitionState> states = new List<LocationAnimationTransitionState>();
  25. public LocationAnimationTransitions(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.StartAnimation(state.StateObject);
  34. }
  35. internal override void AddStateObject(string stateName)
  36. {
  37. var obj = new LocationAnimationTransitionState(stateName, "");
  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. }