[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 2]

※ 주의 

이 글은 아마추어가 개인적으로 생각하여 작성하는 것으로, 이곳에 나오는 내용을 맹신하지 않는것을 당부드립니다.



메뉴


1. 움직임 적용.

- Horizontal을 이용한 움직임.


2. 중력 적용.

- 점프에 의한 중력.

- 낙하에 의한 중력.


3. 충돌 적용. (레이 캐스트로 충돌체크.)

- 점프로 인한 위쪽블록과의 충돌.

- 낙하로 인한 블록과의 충돌.

- 오른쪽, 혹은 왼쪽으로 움직일때에 벽과 충돌.


4. 점프

- 점프로 인한 충돌체크 및 중력적용.


5. 좌,우 충돌체크.



2. 중력적용


다음으로 해야할 것은 플레이어에게 중력을 적용 해야한다.

여기서 한 가지 생각해야할 것이 있는데, '언제 어떤 상황에서 중력을 적용할것 인가?' 이다.


궁금히 생각해 보도록 하자.

플레이어가 땅에 가만히 있는데도 중력이 적용된다면 굉장한 연산 낭비가 아닌가?

그렇다면 2가지 경우에만 중력을 적용시키면 된다.


첫 번째, 플레이어가 점프 후 떨어질 때.

두 번째, 좌,우 이동 중 높은곳에서 낮은 곳으로 떨어졌을 때.


이 중 첫 번째에 경우 점프가 구현되어있지 않았기 때문에 두 번째에 경우를 우선하여 적용 하도록 하자.



우선적으로 중력만 적용시켜보자.

중력만 적용시키는것은 매우 간단한 일이다.


플레이어에게 가할 중력 값을 만들고, y값에 중력값을 게속하여 가중시키면 된다.




플레이어 인스펙터창 정보.




결과





중력은 적용되었지만, 블록에 충돌하지 않고 지나가는것이 보일 것이다.

위에서 말했던 첫 번째, 두 번째 경우에만 중력을 적용 시키기 위해서는 레이 캐스트를 사용하여

충돌체크 부터 해야 한다.


다음은 충돌을 적용시켜 보도록 하자.