플레이어 조작에는 Move,Attack,MovingAttack, Jump, JumpingAttack이 있다.
-Input System 을 패키지 매니저에서 설치해주고 재시작한다.
-잘 설치가 되었다면 Player Settings> Other Settings에서 확인할 수 있다.
Assets>Create>Input Actions로 새로운 Action을 생성한다.
-Player 오브젝트에 PlayerInput 컴포넌트를 추가하고 Actions에 PlayerControl 액션을 넣어준다.
Move
-Behavior가 SendMessages로 되어있는지 확인 후 PlayerController에 OnMove메서드를 추가한다.
-Player의 상태 체크를 통해 움직임을 구현할 수 있도록 두 개의 메서드를 작성했다.
-CheckState 메서드는 플레이어의 상태를 변화시키는 메서드이다.
-PlayerAction 메서드는 플레이어의 상태에 따라 움직임을 나타낸다.
Attack & MovingAttack
-기본적으로 공격은 X키를 눌렀을때 실행되며, 움직이면서도 공격을 할 수 있다.
-Move를 추가한 것처럼 attack과 movingAttack을 구현해보았다. 먼저 Attack 액션을 추가한다.
-PlayerController의 코드를 수정해준다. Attack을 구현하는 것까지는 간단했는데, MovingAttack을 구현할 때 고민을 했다.
OnAttack 메서드에서 움직일때만 이벤트를 호출해 멤버 변수인 isMovingAttack을 true로 바꿔 움직이는 동안 이 값이 true인 경우에 MovingAttack 상태로 변경되도록 코드를 작성했다.
주의해야할 것은 움직임을 받기 전에 isMovingAttack변수를 false로 바꿔줘야한다. 안그러면 계속 true이기 때문이다.
Jump & JumpingAttack
-Z키를 눌러 점프한다.
-Jump는 JumpUp과 JumpDown이 있다.
-Jump를 조작으로 구현할 때 나누어져야하기 때문이다.
-Jump는 키를 눌렀을 때의 누른 시간에 따라 얼마나 길게 점프할지가 정해진다.
https://velog.io/@lunetis/zero-1