1.점프구현
2. 점프 후 떨어질때 자연스럽게 구현
(코드로 점프를 구현하고 실행해보면 떨어질때 공기저항때문에 느리게 떨어진다 )
-자연스럽게 떨어지게 하는 2가지 방법이 있다.
방법1: Edit - projectSettings - physics 2D - Gravity의 Y축값을 기본 -9.81에서 -25 등으로 중력가속도 값을 높게 준다
방법2 : Player오브젝트의 속성중 RigidBody2D에서 Gravitiy Scale 값을 늘려준다 이는 현재 중력에 대한 비율로
기본 9.81중력 가속도인 상태에서 4를 주면 4배의 중력을 받는다는 뜻이다
Player오브젝트의 jumpPower값과 함께 조절한다
3.점프 애니메이션 삽입
(1) - 점프반복없애기
Jump Animation Clip에서 Loop Time 체크해제
(2) - Animator에서 Paramerters에 isJuping(isJumping인데 오타 ㅎ) 생성후 새로 만든 Jump state를 idle,walk state와 연결 하고 각각 Conditions를 준다 아래는 walk와 Jump state 간의 conditions 설정 예제
4. Raycast
: 오브젝트 검색을 위해 Ray(빔)을 쏘는 방식
(1) DrawRay로 레이져빔 눈으로 확인해보기
*DrawRay() : 에디터상에서만 Ray를 볼 수 있게 그려주는 함수
(2) -RayCastgHit - Ray(빔)에 닿은 오브젝트
(3) - (2) 에서 rayHit 레이저는 관통을 할 수 없어서 맨 처음 닿은 colider를 반환하기에 Player를 호출하고 있다
- LayerMask를 사용하면 RayCastHit는 오로지 LayerMask의 지정된 값을 가진 오브젝트만 레이져로 관찰하게 된다
LayerMask : 물리효과를 구분하는 정수값
*Player와 floor가 완전히 닿아있을때 ratHit.distance는 콘솔로 확인하니 0.495123였다!
(4) 점프 애니메이션이 점프 할때 발동하고 착지하면 false로 되게 만들기
*2단점프를 방지할때도 rayHit.distance를 쓰려고하기에 update()안으로 옮겼다
*rayHit의 레이져 길이가 짧아서 점프했을때 애초에 바닥과 닿지 않는다면 rayHit.distance는 0으로 나와버린다 ,,,
따라서 1단점프를 해도 레이져가 충분히 바닥에 닿을 정도로 길이를 조정해주어야 정확한 거리가 나온다
(5) 2단점프 방지
방법1: Update()에서 구현
방법2: rayHit는 FiexdUpate()에서 Input.GetButtonDown("Jump")는 update()에서
'Unity > Unity2D_Flat' 카테고리의 다른 글
Unity2D - 디버그 및 2단점프 (0) | 2020.11.22 |
---|---|
Unity2D - 타일맵 (0) | 2020.11.18 |
Unity2D - 이동 (0) | 2020.11.13 |
Unity2D - 애니메이션 (0) | 2020.11.13 |
Unity-2D (0) | 2020.11.13 |