개요
오늘은 Unity에서 2D 물리 판정을 구현할 때 사용하는
Physics2D.BoxCast와 Physics2D.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를 쓰자.
'Unity > 기능' 카테고리의 다른 글
| [Unity] Rigidbody - MovePosition (0) | 2025.07.01 |
|---|---|
| [Unity] 전역 using 사용하기 (0) | 2025.06.30 |
| [Unity] StateMachineBehaviour (0) | 2025.06.25 |
| [Unity] 유니티 내장 안개 설정하기 (0) | 2025.06.16 |
| [Unity] Indexof - 배열 내 특정 요소의 위치 찾기 (0) | 2025.05.29 |