-
Physics.Raycast 함수Unity 2023. 3. 28. 12:47
Physics.Raycast 함수는 내가 설정한 (게임오브젝트의) 위치에서 설정한 방향으로
설정한 범위 내에서 충돌체의 정보를 가져올 수 있는 함수이다.
레이저를 발사한다고 이해하면 쉽다.
설정 위치에서 내가 세팅한 방향으로 레이저를 쐈을 때 부딪히는 충돌체의 정보를 가져오는 것이다.
{ public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask) }
Vector3 origin = 레이저 발사할 위치
Vector3 direction = 레이저 발사할 방향
out RaycastHit hitInfo = 충돌체의 정보
float maxDistance = 발사할 최대 범위
int layerMask = 정보를 가져올 레이어
예시를 들어보자.
{ RaycastHit hit; float maxDistance = 100; Gizmos.color= Color.yellow; bool isHit = Physics.Raycast(transform.position, transform.forward, out hit, maxDistance); if(isHit) { Gizmos.DrawRay(transform.position, transform.forward * hit.distance); } else { Gizmos.DrawRay(transform.position, transform.forward * maxDistance); } }
RaycastHit 은 구조체로 충돌체의 정보를 받아올 수 있다.
(RaycastHit이 transform에 접근할 수 있다는 얘기는 결국 객체를 제어할 수 있다는 얘기다.)
isHit 은 현재 오브젝트의 위치에서100의 범위까지
앞으로 레이저를 쐈을 때 충돌체를 가져올 수 있다는 bool 형 변수이다. ( true or false )
만약 isHit 이 true 면 hit.distance (충돌체와의 거리)를 기즈모로 그려낸다.
만약 isHit 이 false면 maxDistance (100의 범위)를 기즈모로 그려낸다.
'Unity' 카테고리의 다른 글
애니메이션 간단 비교 (0) 2023.03.28 Collision 과 Trigger 의 간단 설명 (1) 2023.03.25 마우스 커서(Cursor) 숨기기 (0) 2023.03.24 InvokeRepeating 함수 (0) 2023.03.24 Mathf.Sqrt( ) 함수 (0) 2023.03.23