Untitled
unknown
plain_text
a year ago
3.1 kB
9
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Jiya.FinalCC
{
public class PlayerAnimation : MonoBehaviour
{
[SerializeField] private Animator _animator;
[SerializeField] private float locomotionBlendSpeed = 4f;
private PlayerLocomotionInput _playerLocomotionInput;
private PlayerState _playerState;
private PlayerController _playerController;
private static int inputXHash = Animator.StringToHash("inputX");
private static int inputYHash = Animator.StringToHash("inputY");
private static int inputMagnitudeHash = Animator.StringToHash("inputMagnitude");
private static int isIdlingHash = Animator.StringToHash("isIdling");
private static int isGroundedHash = Animator.StringToHash("isGrounded");
private static int isFallingHash = Animator.StringToHash("isFalling");
private static int isJumpingHash = Animator.StringToHash("isJumping");
private static int isRotatingToTarget = Animator.StringToHash("isRotatingToTarget");
private static int rotationMismatchHash = Animator.StringToHash("rotationMismatch");
private Vector3 _currentBlendInput = Vector3.zero;
private void Awake()
{
_playerLocomotionInput = GetComponent<PlayerLocomotionInput>();
_playerState = GetComponent<PlayerState>();
}
private void Update()
{
UpdateAnimationState();
}
private void UpdateAnimationState()
{
bool isIdling = _playerState.CurrentPlayerMovementState == PlayerMovementState.Idling;
bool isRunning = _playerState.CurrentPlayerMovementState == PlayerMovementState.Running;
bool isSprinting = _playerState.CurrentPlayerMovementState == PlayerMovementState.Sprinting;
bool isJumping = _playerState.CurrentPlayerMovementState == PlayerMovementState.Jumping;
bool isFalling = _playerState.CurrentPlayerMovementState == PlayerMovementState.Falling;
bool isGrounded = _playerState.InGroundedState();
Vector2 inputTarget = isSprinting ? _playerLocomotionInput.MovementInput * 1.5f : _playerLocomotionInput.MovementInput;
_currentBlendInput = Vector3.Lerp(_currentBlendInput, inputTarget, locomotionBlendSpeed * Time.deltaTime);
_animator.SetBool(isIdlingHash, isIdling);
_animator.SetBool(isRotatingToTargetHash, _playerController.IsRotatingToTarget);
_animator.SetBool(isGroundedHash, isGrounded);
_animator.SetBool(isFallingHash, isFalling);
_animator.SetBool(isJumpingHash, isJumping);
_animator.SetFloat(inputXHash, _currentBlendInput.x);
_animator.SetFloat(inputYHash, _currentBlendInput.y);
_animator.SetFloat(inputMagnitudeHash, _currentBlendInput.magnitude);
_animator.SetFloat(rotationMismatchHash, _playerController.RotationMismatch);
}
}
}Editor is loading...
Leave a Comment