DynamicLayeredCharacterAnimations.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2024 Kybernetik //
  2. #pragma warning disable CS0649 // Field is never assigned to, and will always have its default value.
  3. using UnityEngine;
  4. namespace Animancer.Samples.Layers
  5. {
  6. /// <summary>
  7. /// Demonstrates how to use layers to play multiple
  8. /// independent animations at the same time on different body parts.
  9. /// </summary>
  10. ///
  11. /// <remarks>
  12. /// <strong>Sample:</strong>
  13. /// <see href="https://kybernetik.com.au/animancer/docs/samples/layers/dynamic">
  14. /// Dynamic Layers</see>
  15. /// </remarks>
  16. ///
  17. /// https://kybernetik.com.au/animancer/api/Animancer.Samples.Layers/DynamicLayeredCharacterAnimations
  18. ///
  19. [AddComponentMenu(Strings.SamplesMenuPrefix + "Layers - Dynamic Layered Character Animations")]
  20. [AnimancerHelpUrl(typeof(DynamicLayeredCharacterAnimations))]
  21. public class DynamicLayeredCharacterAnimations : MonoBehaviour
  22. {
  23. /************************************************************************************************************************/
  24. [SerializeField] private LayeredAnimationManager _AnimationManager;
  25. [SerializeField] private ClipTransition _Idle;
  26. [SerializeField] private ClipTransition _Move;
  27. [SerializeField] private ClipTransition _Action;
  28. /************************************************************************************************************************/
  29. protected virtual void Awake()
  30. {
  31. _Action.Events.OnEnd = _AnimationManager.FadeOutAction;
  32. }
  33. /************************************************************************************************************************/
  34. protected virtual void Update()
  35. {
  36. UpdateMovement();
  37. UpdateAction();
  38. }
  39. /************************************************************************************************************************/
  40. private void UpdateMovement()
  41. {
  42. float forward = SampleInput.WASD.y;
  43. if (forward > 0)
  44. {
  45. _AnimationManager.PlayBase(_Move, false);
  46. }
  47. else
  48. {
  49. _AnimationManager.PlayBase(_Idle, true);
  50. }
  51. }
  52. /************************************************************************************************************************/
  53. private void UpdateAction()
  54. {
  55. if (SampleInput.LeftMouseUp)
  56. {
  57. _AnimationManager.PlayAction(_Action);
  58. }
  59. }
  60. /************************************************************************************************************************/
  61. }
  62. }