Unity/기능

[Unity] BoxCast와 OverlapBox의 차이점

turbulence93 2025. 6. 26. 23:22

개요

오늘은 Unity에서 2D 물리 판정을 구현할 때 사용하는
Physics2D.BoxCastPhysics2D.OverlapBox의 차이점을 학습했다.
처음에는 이름이 비슷해서 헷갈렸지만, 목적과 내부 동작 방식이 분명히 다르다는 것을 이해했다.


핵심 차이점

항목 BoxCast OverlapBox
동작 개념 박스를 직선 방향으로 쭉 이동시켜서 충돌체를 검사 특정 위치에 정지된 박스를 놓고 겹치는 충돌체를 검사
용도 찌르기, 사거리 공격, 직선 충돌 감지 범위형 근접 공격, 슬래시, 힐/버프 등
결과 타입 RaycastHit2D 또는 배열 (BoxCastAll) Collider2D[]
이동 거리 필수 (distance > 0) 불필요 (정지 상태)
성능 상대적으로 무거움 비교적 가벼움 (단순 겹침 검사)

예시 코드

  • BoxCast
RaycastHit2D hit = Physics2D.BoxCast(origin, size, angle, direction, distance, targetMask);
  • OverlapBox
Collider2D[] hits = Physics2D.OverlapBoxAll(origin, size, angle, targetMask);

결론

"BoxCast는 이동하면서 검사, OverlapBox는 겹치는 걸 검사"
두 개념을 정확히 이해하고 상황에 맞게 사용하는 것이 중요하다.
범위 기반 판정에는 OverlapBox, 투사체 기반 판정에는 BoxCast를 쓰자.