[Unity] 물리 탐지 함수(Ray, Sphere, Box, Capsule)

muchan
muchan
∙∙조회 2

물리 탐지 함수란?

Unity에서는 Physics 클래스를 통해 특정 방향이나 범위에 충돌체(Collider)가 존재하는지 검사할 수 있다.

물리 탐지 함수는 크게 Cast, Overlap, Check로 구분할 수 있다.

1. Cast

특정 방향으로 광선이나 도형을 이동시키며 충돌체를 탐지한다.

함수탐지 형태
Raycast광선
SphereCast구
BoxCast직육면체
CapsuleCast캡슐
csharp
Physics.Raycast(origin, direction, out hit, distance);
Physics.SphereCast(origin, radius, direction, out hit, distance);

  • Raycast: 총알 명중 판정, 시야 검사
  • SphereCast: 넓은 범위의 전방 장애물 탐지
  • BoxCast: 일정한 크기의 공간을 따라 장애물 탐지
  • CapsuleCast: 캐릭터 이동 경로 검사

2. Overlap

특정 공간과 겹치는 Collider들을 반환한다.

함수탐지 형태
OverlapSphere구
OverlapBox직육면체
OverlapCapsule캡슐
csharp
Collider[] colliders =
    Physics.OverlapSphere(transform.position, 5f);

주로 범위 공격이나 주변 적 탐색 등에 사용한다.

3. Check

특정 공간에 Collider가 존재하는지 bool 값으로 반환한다.

함수탐지 형태
CheckSphere구
CheckBox직육면체
CheckCapsule캡슐
csharp
bool detected =
    Physics.CheckSphere(transform.position, 5f);

주로 건물 설치 가능 여부나 특정 공간의 장애물 존재 여부를 확인할 때 사용한다.

정리

  • Cast: 특정 방향으로 이동하며 충돌 검사
  • Overlap: 특정 공간에 겹치는 Collider 반환
  • Check: 특정 공간에 Collider가 존재하는지 확인

추가로 RaycastAll, SphereCastAll처럼 이름에 All이 붙으면 여러 충돌 결과를 반환한다.

상황에 따라 탐지 형태와 필요한 반환 정보를 고려하여 적절한 함수를 선택하면 된다.