Raycast를 Box형태로 쏴서 감지하는 방법.
Physics.BoxCast(transform.position, transform.lossyScale / 2, transform.forward, out hitInfo, transform.rotation, range)
(레이저를 발사할 위치, 사각형의 각 좌표의 절판 크기, 발사 방향, 충돌 결과, 회전 각도, 최대 거리)
transform.lossyScale는 부모 오브젝트의 절반에 해당하는 크기이다.
Vector3 boxSize = new Vector3(0.5f, 0.5f,0.5f);
transform.lossyScale 대신에 Boxsize를 사용 할 수 있다.
주의점
transform.lossyScale/1f 또는 transform.lossyScale*2 또는 Boxsize(1f,1f,1f) 또는 Boxsize(2f,2f,2f) 인 경우 되려 박스 크기는 커졌지만, 충돌 판정은 잘 되지 않는다. 그 이유는? 충돌 볼륨의 크기가 너무 크면 충돌체와 겹치는 부분이 더 많아 이로 인해 볼륨간의 간섭이 정확히 계산되지 않을 수 있다.
따라서 Box의 크기를 1 이하로 설정하는 것이 좋다.
도움이 되셨다면 아래 링크는 WONILMAX에서 개발한 3D 스토리 RPG 게임🎮입니다. 오픈 월드에서 펼쳐지는 흥미진진한 모험을 지금 경험하세요!🐰💙
https://play.google.com/store/apps/details?id=com.wonilmax.daisia
'3Dsoftware > Unity 3D' 카테고리의 다른 글
[Unity 3D] Android 14(API 34) 업데이트시 App crash 강제종료 (해결) (0) | 2024.07.09 |
---|---|
Addressable Asset Package 업데이트 시 GUI 에러 해결 (0) | 2023.06.11 |
Unity 3D: UnauthorizedAccessException: Access to the path is denied. (0) | 2023.05.14 |
Unity NavMeshSurface Play시에도 보이는 현상 해결. (0) | 2023.05.09 |
unable to resolve reference 'unityeditor.ios.extensions.xcode (0) | 2023.02.16 |