플레이어 점프(중복 점프는 허용하지 않습니다.)를 구현하고, 애니메이션도 적용합니다.
RaycastHit2D 컴포넌트는 광선의 경로에 따라 놓여 있는 물체를 감지하는 데 사용되며 개념적으로 레이저 빔을 대상으로 발사하여 어떤 물체에 부딪혔는지 관찰하는 것과 같다. 레이캐스트 및 기타 기능은 레이캐스트에 의해 탐지된 객체에 대한 정보를 반환한다.
우선 Player_Jump 애니메이션을 만들고 isJump 파라미터를 추가해준다. 이때 Player_Idle, Player_Walk, Player_Jump는 서로 상호작용을 해야하기 때문에 각각 트랜지션을 만들어주어 관리한다.
만약 점프키가 눌리고 점프 애니메이션이 동작 중이지 않다면 플레이어가 점프를 할 수 있게 해준다.해 준다. 그리고 플레이어가 점프를 한다면 애니메이션 컨트롤러의 isJump 파라미터를 true로 바꿔줘서 점프 애니메이션이 동작할 수 있게 해 준다.
이때 !anim.GetBool("isJump") 조건을 넣어주지 않는다면 무한 점프가 가능하게 된다.
다음은 플레이어 착지에 관한 코드이다.
만약 플레이어가 착지 중에 있다면 레이캐스트를 만드는데 위치는 플레이어, 방향은 아래, 길이는 1 만큼이고, Ground라는 레이어를 가져온다.
만약 레이캐스트가 null값이 아니고, Ground 레이어와 래이캐스트의 거리가 0.5f 이하로 줄어들게 된다면 애니메이션의 isJump 파라미터를 false로 바꿔줘서 점프 애니메이션을 끝나게 해 준다.
'Unity' 카테고리의 다른 글
[Unity] Trigger, Sprite를 이용한 오브젝트 비활성화 (0) | 2020.03.26 |
---|---|
[Unity] TextMesh를 이용한 오브젝트 위에 글씨 만들기 (0) | 2020.03.25 |
[Unity] Mathf.Cos(), Mathf.Sin()을 이용한 무작위 경계 함수 만들기 (0) | 2020.03.24 |
[Unity] Animator, Sprite Renderer를 이용한 애니메이션 설정 (0) | 2020.03.22 |
[Unity] Rigidbody2D와 Transform을 이용한 플레이어 이동 구현 (0) | 2020.03.21 |