JetCharacterAnimator.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace JTSystems
  5. {
  6. [RequireComponent(typeof(JetCharacterController))]
  7. public class JetCharacterAnimator : MonoBehaviour
  8. {
  9. [Header(" Managers ")]
  10. private JetCharacterController jetCharacterController;
  11. [Header(" Components ")]
  12. [SerializeField] private Animator animator;
  13. [SerializeField] private Transform characterRendererTransform;
  14. private void Awake()
  15. {
  16. jetCharacterController = GetComponent<JetCharacterController>();
  17. jetCharacterController.onCharacterMoving += OnCharacterMoving;
  18. jetCharacterController.onCharacterStartedMoving += PlayRunAnimation;
  19. jetCharacterController.onCharacterStoppedMoving += PlayIdleAnimation;
  20. }
  21. // Start is called before the first frame update
  22. void Start()
  23. {
  24. }
  25. // Update is called once per frame
  26. void Update()
  27. {
  28. }
  29. private void OnCharacterMoving(Vector3 movementVector)
  30. {
  31. movementVector.y = 0;
  32. ManageRendererForward(movementVector);
  33. }
  34. private void ManageRendererForward(Vector3 movementDirection)
  35. {
  36. characterRendererTransform.forward = -movementDirection.normalized;
  37. }
  38. private void PlayIdleAnimation()
  39. {
  40. animator.Play("Idle");
  41. }
  42. private void PlayRunAnimation()
  43. {
  44. animator.Play("Run");
  45. }
  46. }
  47. }