Unity/트러블 슈팅

[Unity] 발사체 반사 방향이 이상하던 문제

turbulence93 2025. 5. 21. 20:30

1. 문제 상황

  • 2D 프로젝트에서 발사체가 벽에 충돌할 때 Relfect를 사용하여 반사 처리를 구현
  • 하지만 발사체가 벽에 부딪힐 때 발사체가 이상한 각도로 튀는 현상이 발생
발사체 Reflect 방향이 이상함

2. 원인 분석

  • 2D에서는 여러개의 타일 콜라이더로 이루어져 있을 경우, 타일과 타일 사이의 경계가 존재
  • 해당 경계에 충돌하게 되면 법선 백터가 잘못 계산되어 반사각이 이상하게 튐
x y 가 -1,0이 아닌 0 1로 계산되는 모습
  • 경계 충돌로 인한 왼쪽 충돌이 아닌 위쪽 충돌로 판정

3. 해결 방법

  • 해당 타일맵에 Composite Collider 2D를 추가하여 타일 간 경계가 없는 하나의 연속된 콜라이더로 처리

4. 개인적인 생각

생각보다 눈에 보이는것과는 다른 예상치 못한 문제점이 많았다.
처음엔 단순히 코드 로직 문제로 생각하고 잘못된 점을 찾아봤는데, 콜라이더 구조와 충돌 처리에 대한 문제였다.

단순히 코드뿐만 아니라 엔진의 구조적 특징과 작동 방식에 대한 이해도 필요하겠다고 느꼈다.