⚔️ 게임 충돌 판정 알고리즘 완전 정리 – AABB, Circle, Polygon
게임에서 캐릭터가 벽에 막히거나, 총알이 적에게 맞는 장면을 구현하려면 **충돌 판정(Collision Detection)**이 필수다.
이번 글에서는 게임에서 가장 많이 쓰이는 AABB, 원(Circle), 다각형(Polygon) 충돌 판정을 이론과 Unity 예제까지 포함해 정리해보자.
1. AABB(축 정렬 사각형, Axis-Aligned Bounding Box)
-
가장 간단하고 빠른 충돌 판정 방법
-
사각형의 변이 좌표축(X, Y)에 평행하게 정렬되어 있어야 함
-
계산: 두 사각형의 좌표가 겹치는지 확인
예시 (2D Unity)
→ 빠르고 단순하지만, 회전된 오브젝트에는 부정확
2. Circle 충돌
-
중심점과 반지름만으로 충돌 판정
-
계산: 두 원 사이의 거리 < 반지름 합
예시 (Unity)
→ 원형 오브젝트나 구형 캐릭터에 적합
3. Polygon 충돌
-
다각형 오브젝트 충돌 판정
-
일반적으로 Separating Axis Theorem (SAT) 사용
-
계산: 모든 변을 기준으로 투영했을 때 겹치지 않으면 충돌 없음
💡 TIP: 다각형 충돌은 계산량이 많으므로, 복잡한 오브젝트는 AABB/원으로 1차 필터링 후 Polygon 사용
4. Unity에서 활용하기
-
Unity는 Collider(2D/3D)를 제공
-
BoxCollider2D → AABB
-
CircleCollider2D → Circle
-
PolygonCollider2D → Polygon
-
-
Rigidbody + Collider 조합 → 물리 엔진이 자동으로 충돌 처리
-
하지만 직접 알고리즘 이해 → 최적화 + 커스텀 충돌 가능
5. 마무리
충돌 판정 알고리즘을 이해하면,
-
캐릭터 이동과 벽 충돌 처리
-
총알과 적 충돌
-
물리 기반 오브젝트 상호작용
등 게임의 기본적인 물리적 상호작용을 자유롭게 구현할 수 있다.
👉 다음 글에서는 벡터(Vector)와 행렬(Matrix)로 이해하는 캐릭터 이동을 다뤄서, 움직임 계산의 핵심 원리를 살펴보겠다.
댓글
댓글 쓰기