유니티 다크소울 따라만들기 ch_19 점프
이 글은 유튜브 Sebastian Graves Create Dark Souls를 보고 따라 만들면서 헷갈리는 부분을 정리한 글입니다.
구현 개요
간단하게 점프를 구현함
구현 시작
InputSystem 추가
스페이스바로 점프 키를 할당함.
InputHandeler 스크립트 수정
public class InputHandler : MonoBehaviour
{
...
public bool jump_Input;
...
public void TickInput(float delta)
{
...
HandleJumpInput();
}
private void HandleJumpInput()
{
inputActions.PlayerActions.Jump.performed += inputActions => jump_Input = true;
}
}
PlayerLocomotion 수정
다음 함수를 추가해줌.
다른 애니메이션 실행중이 아니거나, 움직이고 있을 때만 점프가 가능한 점프를 구현.
public void HandleJumping()
{
if (playerManager.isInteracting)
{
return;
}
if (inputHandler.jump_Input)
{
if (inputHandler.moveAmount > 0)
{
moveDirection = cameraObject.forward * inputHandler.vertical;
moveDirection += cameraObject.right * inputHandler.horizontal;
animatorHandler.PlayTargetAnimation("Jump", true);
moveDirection.y = 0;
Quaternion jumpRotation = Quaternion.LookRotation(moveDirection);
myTransform.rotation = jumpRotation;
}
}
}
PlayerManager 수정
새로운 파라미터 isInAir의 값을 수정하며 PlayerLocomotion의 HandleJumping()를 실행
public class PlayerManager : MonoBehaviour
{
void Update()
{
...
anim.SetBool("isInAir", isInAir);
...
playerLocomotion.HandleJumping();
...
}
private void LateUpdate()
{
...
inputHandler.jump_Input = false;
...
}
}
댓글남기기