지금 개인과제 중인데, 캐릭터 애니메이션을 적용하려고 하는데 어질어질하다..
애니메이터를 잘 몰라서 너무 오래 걸린것같다 ㅜ 그래서 다시 까먹지 않으려고 한번 정리를 해보려고 한다.
기본상태, 앞으로갈때, 뒤로갈때의 애니메이션을 설정해보겠다.
사실 너무 간단하다 애니메이터를 켜고 각각의 애니메이션 상태(State)를 만들어준 뒤
Idle를 기본으로 설정하고 아래와 같이 파라미터에서 float형식의 MoveDirection하나를 만들어주자
Idle 상태에서 WalkForward로 전환: MoveDirection이 0보다 클 때
Idle 상태에서 WalkBackward로 전환: MoveDirection이 0보다 작을 때
WalkForward에서 Idle로 전환: MoveDirection이 0일 때
WalkBackward에서 Idle로 전환: MoveDirection이 0일 때
예시
기본 에서 앞으로걷기 = Greater 0
앞으로걷기 에서 기본 = Greater - 0.01 / Less 0.01
기본에서 뒤로걷기 = Less 0
뒤로걷기에서 기본 = Greater -0.01 / Less 0.01
그리고 이동방향을 결정하는 코드에서
public void OnMoveInput(InputAction.CallbackContext context)
{
if (context.phase == InputActionPhase.Performed)
{
curMovementInput = context.ReadValue<Vector2>();
float moveDirection = curMovementInput.y; // y 값이 앞으로(1), 뒤로(-1)를 결정
animator.SetFloat("MoveDirection", moveDirection);
}
else if (context.phase == InputActionPhase.Canceled)
{
curMovementInput = Vector2.zero;
animator.SetFloat("MoveDirection", 0); // 0이면 정지
}