24/06/24
제작한 맵에서 플레이어를 움직임 테스트를 해보던 중 플레이어가 어딘가에 걸리거나 움직임이 멈추는 등 동작이 일시정지 되는 버그가 발생했다.
그래서 기존의 타일맵으로 만들었던 Collider가 플레이어의 움직임 로직과 불안정하다고 추측해 보았다.
우선 플레이어의 스크립트 부분을 보면
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGround = true;
isJumping = false;
animator.SetBool("IsJump", false);
if (flag)
{
animator.SetBool("IsDown", true);
standing = true;
}
}
}
스크립트를 봤을때 Ground라는 Tag를 감지해서 이동이나 점프를 구분하는것 같다.
확인해보니 오브젝트의 Tag가 Ground가 아니었어서 Ground로 변경해보았다.
그래도 문제는 해결되지 않았고 움직일때마다 동작이 자꾸 정지했다.
왠지 타일로 만들었더니 한칸씩 움직일때마다 움직임이 멈추는것 같았다 그래서 타일을 지우고
하나의 collider 바닥을 만들어 보았다.
이렇게 하나로 배치했더니 앞의 버그들이 잘 해결되었다!
개발하다 보면 버그는 어디서 어떻게 발생할지 모르지만 원인을 분석 하다보면 스스로 해결할 수 있다는것을 알게되었고 그러기 위해서는 항상 충분한 테스트를 해봐야 겠다고 느꼈다.