플랫포머 게임에서 가장 중요한 것은 이동이기 때문에 조작감이 매우 중요하다.

나는 그림과 같이 땅에 엣지 콜라이더를 사용했는데, 벽면도 땅 처리가 되기 때문에 벽에서 자꾸 마찰이 생기는 문제가 있었다.
해결방법
Projects 창> create > 2d> Physics Material 의 friction(마찰)값을 0으로 바꿔주면 내가 원하는 조작감으로 구현할 수 있다!!

하지만,
이럴경우 추가로 발생하는 문제점 : 마찰이 없기 때문에 경사면에서 그냥 주르륵 미끄러져 버린다.
해결방법
if (moveX == 0) rigid2d.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezeRotation;
else rigid2d.constraints = RigidbodyConstraints2D.FreezeRotation;
해결방법

moveX는 Input.GetAxisRaw("Horizontal2")로 받아온 float값이다.
인풋값이 없을 때, rigidbody의 constraints - Freeze PositionX를 고정시켜준다.
코드를 보면 기본적으로 회전값이 고정돼있는데, 인풋이 없을 땐 추가로 x좌표도 고정시키는 것이다.
비트연산자를 사용해 고정시킨 코드이다.
'Unity 포트폴리오 > 플젝3. 플랫포머 게임[브레인 멜트다운 모작]' 카테고리의 다른 글
컬러블록 구현 (Unity Project / BrainMeltdown 모작 / 플랫포머 2d게임) (0) | 2022.07.24 |
---|---|
일방충돌 구현 / Platform Effector /윗 방향으로는 통과하고 아랫방향으로는 막히는 충돌(Unity Project / BrainMeltdown 모작 / 플랫포머 게임) (0) | 2022.07.14 |
플레이어의 이동과 조작 (Unity 포트폴리오/Brain Meltdown 모작) (0) | 2022.07.11 |
개인 포트폴리오 - 브레인 멜트다운 모작 기획서 (0) | 2022.07.06 |