Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/유니티

유니티 오브젝트 떠있게 하기, 떠있는 물체 낮추기

UniCoti(유니코티) 2022. 9. 30.

유니티를 하다보면 

애니메이션 도중보면 물체가 떠있게 보이거나

그냥 땅 위에 올려두면 살짝 떠있어 보이는

문제가 종종 발생한다.

 

필자가 운영하는 유니티 무료 질문방에 

이런 문제가 발생한 분이 있어서 글로 쓴다.

 

이 문제가 발생한 사진을 가져와 보겠다.

항상 그렇듯 2D랑 3D가 나눠지지만 

해결법은 똑같기에 2D 기준으로 고쳐보겠다.

 

유튜버, 유니티 에반젤리스트 "골드메탈"님의 에셋

이건 리지드 바디(중력)을 추가하고, 콜라이더도 추가한후 시작한 뒤

찍힌 사진이다.

 

사진도 완벽하게 잘라져있고, 콜라이더도 사진에맞게

설정되어있어 뜰거라고 상상하지 못했지만,

이론과 현실은 다르듯이 떠있는 모습을 볼 수 있다.

 

여기서 해결법은 콜라이더의 크기를 바꾸는것이다.

콜라이더란 물리적인 처리를 하는 부분을

말한다.

 

이 캐릭터의 콜라이더를 표시한 사진을 가져오겠다.

유튜버, 유니티 에반젤리스트 "골드메탈"님의 에셋

이 네모난 박스가 물리 처리를 담당하는 부분이다.

사람이 보기엔 완벽히 일치하는것으로 보인다.

하지만 실제로는 공중에 떠있는것으로 보이기 때문에

Box Collider 2D에서 Size y를 줄여주면,

물리 처리를 담당하는 부분이 세로로 작아지기때문에

줄인 y값만큼 밑으로 내려가게 된다.

아주 조금만 떠있기에 아주 조금만 내리면 된다.

그렇기에 필자는 1 -> 0.95로 설정해주었다.

 

이제 실행해주면?

유튜버, 유니티 에반젤리스트 "골드메탈"님의 에셋

땅에 잘 붙어있는 모습을 확인할 수 있다.

 

이번엔 역발상적인 사고로, 롤의 말자하 처럼 떠다니는 캐릭터로 만들어 보겠다.

이렇게 세로로 길이를 늘려주고, 늘어난 길이게 맞게

위로 조금 올려주면,

 

유튜버, 유니티 에반젤리스트 "골드메탈"님의 에셋

이렇게 위에 떠있게 된다.

떠있는 캐릭터를 만들고 싶다면 이런식으로 진행하면 될것같다.

 

혹시 밑에 총을 맞거나 해도 상관없게 하고 싶다면

자식을 하나 만들어서 콜라이더를 만들고,

부모는 위로 올려서 스크립트를 쓰면 될것같다.

 

도움이 되었길 바라며,

 

끝.

댓글

💲 추천 글