오늘 공부한 것
Raycast
Raycast는 목적 지점까지의 거리를 말하는데 오브젝트를 목표로 하면 출발 오브젝트와 목표 오브젝트사이의 거리를 레이저로 나타낸다.
//현재 위치에서 앞방향으로 Raycast 드로우 (foward는 z축 방향으로 앞으로)
// DrawRay(현재 지점, 목표지점 (lineSize배만큼), 색)
Debug.DrawRay(transform.position, transform.forward * lineSize, Color.blue);
Raycast는 빠르거나 천천히 나가는 것이 아닌 한 프레임에서 나가는 방향이고 선 뿐만 아니라 사각형, 마름모 등의 Raycast를 그릴 수 있다.
RaycastHit
RaycastHit는 콜라이더 오브젝트가 있는 위치의 방향으로 돌려 충돌을 감지한다.
무슨 말이냐면 현재 위치에서 목적 위치까지의 Raycast사이에 오브젝트가 있는지 검사하는 것이다.
Debug.DrawRay(transform.position, targetObject.position, Color.blue);
//지나간 Raycast사이의 오브젝트들을 출력하고 싶으면
RaycastHit[] hits;
//RaycastAll(현재위치, 목표위치, 사이즈)
hits = Physics.RaycastAll(transform.position, targetObject.position, lineSize);
for (int i = 0; i<hits.Length; i++)
{
//hits사이즈까지 hit에 저장해 이름을 출력
RaycastHit hit = hits[i];
Debug.Log(hit.collider.gameObject.name);
}
이미지를 보면 왼쪽부터 구 1 2 3 인데
두 정육면체 사이의 Raycast안에 구 1하고 3이 닿아서 콘솔창에 오브젝트 이름이 출력되었다.
'개발 TIL' 카테고리의 다른 글
5/27 부트캠프 개발 TIL (2D Sprite) (0) | 2024.05.27 |
---|---|
5/24 부트캠프 개발 TIL (ForceMode, Ray관련, Skybox) (0) | 2024.05.24 |
5/22 부트캠프 개발 TIL (코루틴과 콜라이더) (0) | 2024.05.22 |
5/21 부트캠프 개발 TIL (플레이어 피격) (0) | 2024.05.21 |
5/20 부트캠프 개발 TIL (InputSystem 2인용) (0) | 2024.05.20 |