지난 두 개의 강좌에서 2D 플랫포머 이동과 점프에 대해서 알려드렸습니다. 이제 충분히 플랫포머 게임의 기본을 갖추었지만 아직 한 가지 버그가 남아있습니다. 점프를 하거나 플랫폼에서 떨어질 때 땅의 옆 부분에 플레이어가 닿으면 떨어지는 속도가 확 줄어드는, 흔히 끼임 현상이라고도 할 수 있는 상황이 발생합니다. 유니티 물리 엔진은 마찰(Friction)도 구현이 되기 때문에 힘이 가해지지 않으면 마찰로 인해 플레이어가 멈추게 됩니다. 이번 강좌에서는 이 형상을 해결하기 위해서 Physics Material을 사용해서 마찰 계수를 0으로 바꿔 보겠습니다.
Physics Material을 생성해 보도록 하겠습니다. 프로젝트 탭에서 마우스 우클릭 > Create > 2D 탭으로 들어가면 Physics Material 2D가 있습니다. 이름은 적당히 Player Physics로 하겠습니다.
방금 생성한 Physics Material을 선택하고 Inspector 탭을 보면 두 개의 설정들이 있습니다. 저희는 여기서 Friction 값을 0으로 설정해 줄 겁니다. 그러면 이제 이걸 플레이어한테 적용만 하면 되죠. Bounciness 값을 올리게 되면 플레이어가 통통 튀는 현상을 구현 할 수 있게 됩니다.
이제 플레이어를 선택하고 Inspector 탭으로 옵시다. 플레이어한테 적용시켰던 Rigidbody 2D 컴포넌트를 살펴보면 Material 칸이 있습니다. 여기에 방금 생성했던 Player Physics를 드래그해서 적용시켜주면 됩니다. 이렇게 하면 간단하게 플레이어의 마찰을 0으로 줄일 수 있게 됩니다.
잘 적용이 됐는지 확인해 보도록 하죠. 유니티 중앙 상단에 있는 플레이 버튼을 클릭해서 게임을 실행해 봅시다. 점프를 하다가 벽에 부딪혀도 멈추지 않고 미끄러져 내려오는 모습을 볼 수 있네요. 성공입니다!
'유니티' 카테고리의 다른 글
유니티 이론 01. GetAxis와 GetAxisRaw 차이점 (2) | 2022.12.31 |
---|---|
유니티 강좌 06. 2D 플랫포머 점프 (0) | 2022.12.29 |
유니티 강좌 05. 2D 플랫포머 이동 (0) | 2022.12.28 |
유니티 강좌 05. 화면 흔들림 효과 (1) | 2022.12.24 |
유니티 강좌 04. 2D 랜덤 패트롤 AI (0) | 2022.12.22 |