포스트

[Unity] Raycast 함수

[Unity] Raycast 함수

Unity의 Raycast 관련 함수 정리

Unity에서 사용 가능한 모든 Raycast 관련 함수들을 카테고리별로 정리한 문서입니다.
각 함수는 충돌 판정 방식에 따라 동작 특성과 반환값이 다릅니다.


1. 기본 Raycast (선형 레이저)

함수설명반환메모리 할당
Physics.Raycast(ray)충돌 여부만 반환boolX
Physics.Raycast(ray, out RaycastHit hit)첫 번째 충돌 정보 반환bool + RaycastHitX
Physics.Raycast(origin, direction)시작점과 방향 지정boolX
Physics.RaycastAll(...)모든 충돌체 반환RaycastHit[]O
Physics.RaycastNonAlloc(ray, resultArray)미리 할당된 배열에 결과 저장int (충돌 수)X

2. SphereCast (구체 레이저)

함수설명반환메모리 할당
Physics.SphereCast(...)반지름을 가진 구 형태로 레이 캐스팅bool + RaycastHitX
Physics.SphereCastAll(...)모든 충돌 반환RaycastHit[]O
Physics.SphereCastNonAlloc(...)결과를 배열에 저장intX

3. CapsuleCast (캡슐 형태)

함수설명반환메모리 할당
Physics.CapsuleCast(...)두 점 사이의 캡슐 형태로 충돌 판정bool + RaycastHitX
Physics.CapsuleCastAll(...)모든 충돌체 반환RaycastHit[]O
Physics.CapsuleCastNonAlloc(...)배열에 결과 저장intX

4. BoxCast (박스 형태)

함수설명반환메모리 할당
Physics.BoxCast(...)반 크기를 기준으로 박스 모양으로 검사bool + RaycastHitX
Physics.BoxCastAll(...)모든 충돌 반환RaycastHit[]O
Physics.BoxCastNonAlloc(...)배열에 결과 저장intX

5. Overlap 시리즈 (범위 내부 겹침 검사)

함수설명반환메모리 할당
Physics.OverlapSphere(...)구체 내부의 Collider 반환Collider[]O
Physics.OverlapBox(...)박스 내부의 Collider 반환Collider[]O
Physics.OverlapCapsule(...)캡슐 내부의 Collider 반환Collider[]O
Physics.OverlapSphereNonAlloc(...)배열에 결과 저장intX
Physics.OverlapBoxNonAlloc(...)intX
Physics.OverlapCapsuleNonAlloc(...)intX

6. 기타 고급 함수

함수설명
Physics.RaycastCommand.ScheduleBatch(...)Burst 컴파일러 + Job 시스템용 레이캐스트
Physics.ComputePenetration(...)두 콜라이더가 겹쳐 있을 때 침투 깊이 및 방향 계산
Physics.ClosestPoint(...)콜라이더 표면에서 주어진 점에 가장 가까운 지점 계산

7. 함수 선택 요령

필요추천 함수
첫 번째 충돌체만Physics.Raycast
여러 개 충돌체Physics.RaycastAll
GC 없이 반복 검사Physics.RaycastNonAlloc
범위 안 겹침 감지Physics.OverlapSphere, OverlapBox
이동 경로 충돌SphereCast, CapsuleCast, BoxCast
고성능 대량 검사RaycastCommand (Job system)

요약 비교표

형태단일 충돌다중 충돌비할당
선형RaycastRaycastAllRaycastNonAlloc
구체SphereCastSphereCastAllSphereCastNonAlloc
캡슐CapsuleCastCapsuleCastAllCapsuleCastNonAlloc
박스BoxCastBoxCastAllBoxCastNonAlloc
범위Overlap*없음 (항상 다중)Overlap*NonAlloc
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.