유니티) 레이케스트 Physics.Raycas, 콜라이더 검출하기
Raycast
Physics.Raycast
Debug.DrawRay 체크 : 거리와 위치를 디버깅 할 수 있다.(유니티 씬장면에서만 나옴)
Debug.DrawRay(transform.position, transform.forward * 8, Color.red);
(위 scene, 아래 game)
충돌한 오브젝트 반환하기
RaycastHit hit;
if (Physics.Raycast(transform.position, transform.forward, out hit, 8))
{ //광선을 쏴서 충돌한 게임 오브젝트를 레이캐스트 변수에 저장처리한다.
Debug.Log(hit.collider.gameObject.name);
} //광선이 충동한 게임 오브젝트의 이름을 콘솔창에 출력한다.
콘솔창을 보면 ray에 닿은 오브젝트를 확인 할 수 있다.
중첩되는 오브젝트일경우 Physics.RaycastAll
RaycastHit[] hits; //Raycast데이터 저장용 배열 설정
hits = Physics.RaycastAll(transform.position, transform.forward, 8.0f);
for(int i=0; i<hits.Length; i++)
{
RaycastHit hit = hits[i];
Debug.Log(hit.collider.gameObject.name);
}
Raycast데이터 저장용 배열을 사용한다.
정해진 길이만큼 통과한 오브젝트들의 이름을 반환한다.