10
25

2D 플랫포머 혹은 사이드뷰 게임을 만들 때, 플레이어가 점프할 땐 올라갈 수 있지만 땅은 디딜 수 있는 콜라이더가 필요할 때가 있다. 

물론 이 부분을 스크립트 작성으로 해결할 수도 있긴하지만, 우리의 시간은 금이고 유니티 내엔 이미 이 기능이 구현되어 있다. 이 글에선 그 기능의 사용법을 알아본다.


일단 한쪽으로만 이동 가능하길 원하는 게임 오브젝트에 가서 Platform Effector 2D를 Add Component 해주자.

 

그리고 해당 스크립트가 붙으면, 기존에 있던 Collider 2DUsed By Effector를 켜준다.

 

해당 옵션을 켰을 때 인게임 뷰가 이런 식으로 변한다면 정상 작동한 것이다.

 

대충 해당 UI와 옵션을 보면 알겠지만, 이 컴포넌트를 붙이면 어떤 각도에서만 콜라이더를 활성화할 것인지(One Way 섹션), 특정 각도의 측면에서는 마찰 혹은 튕김 설정을 비/활성화할 것인지(Sides 섹션)를 설정할 수 있다. 해당 부분은 게임의 특성에 따라 자유로히 조절하자.

 

그러면 따로 스크립트를 작성하지 않았음에도 위와 같이 콜라이더가 한 쪽으로만 작동하는 걸 볼 수 있다.

 


 

참고

 

유니티 - 매뉴얼: 플랫폼 이펙터 2D

플랫폼 이펙터 2D The Platform Effector 2D applies various “platform” behaviour such as one-way collisions, removal of side-friction/bounce etc. Colliders that you use with the effector would typically not be set as triggers so that other collider

docs.unity3d.com

해당 문제로 삽질하던 중에 우연히 이 내용을 알게 돼서 백업.

역시 매뉴얼은 당장 필요한 내용이 아니더라도 한 번은 읽어봐야 한다...

COMMENT