이전의 CharacterController 컴포넌트를 이용해 플레이어 캐릭터를 움직이는 스크립트에,
걷고, 뛰는 조작을 더해주기 위해 InputSystem에 OnRun을 추가해주고 다음과 같이 스크립트를 작성하였다.
private void OnRun(InputValue inputValue)
{
if (inputValue.isPressed)
{
isWalk = false;
}
else
{
isWalk = true;
}
}
void Move()
{
if(isWalk)
{
controller.Move(transform.right * moveDir.x * walkSpeed * Time.deltaTime);
controller.Move(transform.forward * moveDir.z * walkSpeed * Time.deltaTime);
//animator.SetFloat("XSpeed", moveDir.x * walkSpeed); //점진적으로 보간해가며 바꿔주자
animator.SetFloat("XSpeed", moveDir.x * walkSpeed, 0.2f, Time.deltaTime); //damping을 넣어줄 수 있음
animator.SetFloat("YSpeed", moveDir.z * walkSpeed, 0.2f, Time.deltaTime);
animator.SetFloat("MoveSpeed", moveDir.magnitude * walkSpeed);
}
else
{
controller.Move(transform.right * moveDir.x * moveSpeed * Time.deltaTime);
controller.Move(transform.forward * moveDir.z * moveSpeed * Time.deltaTime);
animator.SetFloat("XSpeed", moveDir.x * moveSpeed, 0.2f, Time.deltaTime);
animator.SetFloat("YSpeed", moveDir.z * moveSpeed, 0.2f, Time.deltaTime);
animator.SetFloat("MoveSpeed", moveDir.magnitude * moveSpeed);
}
}
Damping을 넣어주기 이전
매개 변수가 0, 4, 8로만 바뀌어 모션이 전환 될 때 툭툭 끊기는것을 볼 수 있다.
#Damping을 넣어준 후
매개 변수가 선형적으로 넘어가 모션이 부드럽게 재생될 수 있다.