Collider issue

  • 게임에 적합한 level을 디자인하고 player를 해당 level에 두어 잘 동작하는지 확인해보았다.
  • 일단, 구성한 level은 더이상 움직이지 않는 gameobject이므로 모두 static으로 설정하였다.
  • 이 곳에서 player를 조작하던 점프, 닷지와 같은 동작이 선택적으로 동작하는 버그를 발견했다.
  • jump 동작을 할 때, oncollision enter를 사용하여 'ground' tag가 붙어있는 gameobject와 접촉하고 있지 않을 때 isAir라는 bool 값이 true가 된다.
  • animator를 봤을 때, isAir가 계속 켜져있어 일반적인 동작에는 문제가 없지만 jump와 dodge같은 특수 동작에서 문제가 있었다.
  • 해당 문제는 floor를 이루는 gameobejct들이 box colider를 각자 하나씩 가지고 있다는 것이다.
  • collider가 각각 하나씩 존재하면 그 틈이 존재하는데, 그 틈에서 isAir가 true가 되는 판정이 되는 것이다.
  • 그리고 정상적인 판정이 아니므로 다시 false가 되지 않는다.
  • 이전에 2d 게임을 만드는 과정에서 동일한 문제가 발생한 적이 있었는데, 그 때는 'composite collider 2d'를 이용하였다.
  • 결국 하나의 collider로 통합하는 것이 좋다고 생각해서 각 room마다의 collider 하나씩으로 통합해서 다른 불필요한 collider들은 삭제했다.

UI Fade Out

profile
NEWB!

0개의 댓글