TransitionLibraryModifiersPage.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2024 Kybernetik //
  2. #if UNITY_EDITOR
  3. using System;
  4. using UnityEngine;
  5. namespace Animancer.Editor.TransitionLibraries
  6. {
  7. /// <summary>[Editor-Only]
  8. /// A <see cref="TransitionLibraryWindowPage"/> for editing transition modifiers.
  9. /// </summary>
  10. /// https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryModifiersPage
  11. [Serializable]
  12. public class TransitionLibraryModifiersPage : TransitionLibraryWindowPage
  13. {
  14. /************************************************************************************************************************/
  15. [SerializeField]
  16. private TransitionModifierTableGUI _TableGUI;
  17. /************************************************************************************************************************/
  18. /// <inheritdoc/>
  19. public override string DisplayName
  20. => "Transition Modifiers";
  21. /// <inheritdoc/>
  22. public override string HelpTooltip
  23. => "Modifiers allow you to replace the usual fade duration for specific combinations of transitions.";
  24. /// <inheritdoc/>
  25. public override int Index
  26. => 0;
  27. /************************************************************************************************************************/
  28. /// <inheritdoc/>
  29. public override void OnGUI(Rect area)
  30. {
  31. _TableGUI ??= new();
  32. if (Window.Data.Transitions.Length == 0)
  33. {
  34. area = new Rect(
  35. area.x + AnimancerGUI.StandardSpacing,
  36. area.y + AnimancerGUI.StandardSpacing,
  37. area.width - AnimancerGUI.StandardSpacing * 2,
  38. AnimancerGUI.LineHeight);
  39. GUI.Label(area, "Library contains no Transitions");
  40. AnimancerGUI.NextVerticalArea(ref area);
  41. if (GUI.Button(area, "Create Transition"))
  42. TransitionLibraryOperations.CreateTransition(Window);
  43. }
  44. else
  45. {
  46. _TableGUI.DoGUI(area, Window);
  47. }
  48. TransitionLibraryOperations.HandleBackgroundInput(area, Window);
  49. }
  50. /************************************************************************************************************************/
  51. }
  52. }
  53. #endif