DynamicLayeredCharacterAnimations.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Animancer // https://kybernetik.com.au/animancer // Copyright 2022 Kybernetik //
  2. #pragma warning disable CS0649 // Field is never assigned to, and will always have its default value.
  3. using UnityEngine;
  4. namespace Animancer.Examples.Layers
  5. {
  6. /// <summary>Demonstrates how to use layers to play multiple animations at once on different body parts.</summary>
  7. /// <example><see href="https://kybernetik.com.au/animancer/docs/examples/layers">Layers</see></example>
  8. /// https://kybernetik.com.au/animancer/api/Animancer.Examples.Layers/DynamicLayeredCharacterAnimations
  9. ///
  10. [AddComponentMenu(Strings.ExamplesMenuPrefix + "Layers - Dynamic Layered Character Animations")]
  11. [HelpURL(Strings.DocsURLs.ExampleAPIDocumentation + nameof(Layers) + "/" + nameof(DynamicLayeredCharacterAnimations))]
  12. public sealed class DynamicLayeredCharacterAnimations : MonoBehaviour
  13. {
  14. /************************************************************************************************************************/
  15. [SerializeField] private LayeredAnimationManager _AnimationManager;
  16. [SerializeField] private ClipTransition _Idle;
  17. [SerializeField] private ClipTransition _Move;
  18. [SerializeField] private ClipTransition _Action;
  19. /************************************************************************************************************************/
  20. private void Awake()
  21. {
  22. _Action.Events.OnEnd = _AnimationManager.FadeOutUpperBody;
  23. }
  24. /************************************************************************************************************************/
  25. private void Update()
  26. {
  27. UpdateMovement();
  28. UpdateAction();
  29. }
  30. /************************************************************************************************************************/
  31. private void UpdateMovement()
  32. {
  33. float forward = ExampleInput.WASD.y;
  34. if (forward > 0)
  35. {
  36. _AnimationManager.PlayBase(_Move, false);
  37. }
  38. else
  39. {
  40. _AnimationManager.PlayBase(_Idle, true);
  41. }
  42. }
  43. /************************************************************************************************************************/
  44. private void UpdateAction()
  45. {
  46. if (ExampleInput.LeftMouseUp)
  47. {
  48. _AnimationManager.PlayAction(_Action);
  49. }
  50. }
  51. /************************************************************************************************************************/
  52. }
  53. }