본문 바로가기

유니티

유니티 강좌 07. 플레이어 벽 끼임 현상 - Physics Material

지난 두 개의 강좌에서 2D 플랫포머 이동과 점프에 대해서 알려드렸습니다. 이제 충분히 플랫포머 게임의 기본을 갖추었지만 아직 한 가지 버그가 남아있습니다. 점프를 하거나 플랫폼에서 떨어질 때 땅의 옆 부분에 플레이어가 닿으면 떨어지는 속도가 확 줄어드는, 흔히 끼임 현상이라고도 할 수 있는 상황이 발생합니다. 유니티 물리 엔진은 마찰(Friction)도 구현이 되기 때문에 힘이 가해지지 않으면 마찰로 인해 플레이어가 멈추게 됩니다. 이번 강좌에서는 이 형상을 해결하기 위해서 Physics Material을 사용해서 마찰 계수를 0으로 바꿔 보겠습니다. 


 

유니티 강좌 05. 2D 플랫포머 이동

저번에는 탑뷰 형식의 게임에 사용될 플레이어 상하좌우 이동에 대해서 알려드렸습니다. 하지만 마리오, 소닉, 테라리아 같은 플랫포머 게임을 만들 때는 중력이 적용된 좌우 이동이 필요합니

torotoblog.tistory.com

 

유니티 강좌 06. 2D 플랫포머 점프

플랫포머 게임에서 좌우 이동과 함께 필수적인 요소 중 하나가 바로 점프입니다. 점프는 여러 변수들을 만들어 내면서 게임에 재미를 더하죠. 저번 강좌와 이어서 이번에는 플랫포머에서의 점

torotoblog.tistory.com


Physics Material을 생성해 보도록 하겠습니다. 프로젝트 탭에서 마우스 우클릭 > Create > 2D 탭으로 들어가면 Physics Material 2D가 있습니다. 이름은 적당히 Player Physics로 하겠습니다.

방금 생성한 Physics Material을 선택하고 Inspector 탭을 보면 두 개의 설정들이 있습니다. 저희는 여기서 Friction 값을 0으로 설정해 줄 겁니다. 그러면 이제 이걸 플레이어한테 적용만 하면 되죠. Bounciness 값을 올리게 되면 플레이어가 통통 튀는 현상을 구현 할 수 있게 됩니다. 

이제 플레이어를 선택하고 Inspector 탭으로 옵시다. 플레이어한테 적용시켰던 Rigidbody 2D 컴포넌트를 살펴보면 Material 칸이 있습니다. 여기에 방금 생성했던 Player Physics를 드래그해서 적용시켜주면 됩니다. 이렇게 하면 간단하게 플레이어의 마찰을 0으로 줄일 수 있게 됩니다.

잘 적용이 됐는지 확인해 보도록 하죠. 유니티 중앙 상단에 있는 플레이 버튼을 클릭해서 게임을 실행해 봅시다. 점프를 하다가 벽에 부딪혀도 멈추지 않고 미끄러져 내려오는 모습을 볼 수 있네요. 성공입니다!