본문 바로가기

프로그래밍/Unity

Physics.Raycast

물체를 이동시킬때 이동하는 방향이 막혔는지의 여부를 알거나

현재 화면상의 객체를 선택(피킹)할때 가상의 레이저(직선)을 그어 collider 여부를

검사할 수 있다.

   

레이캐스팅

특정 위치에서 해당 방향으로, 거리내에 collider가 있는지 확인하는 메쏘드.

모두 static 함수들이다.

RaycastHit은 출력인자이며, 레이캐스트로 검출된 오브젝트의 여러 정보를 가지고 있다.

   

Physics.Raycast( 위치벡터, 방향 벡터, 거리=Mathf.Infinity, 레이어 마스크 );

Physics.Raycast( 위치벡터, 방향벡터, RaycastHit , 거리, 레이어 마스크);

Physics.Raycast( Ray , 거리, 마스크 );

Physics.Raycast( Ray, RaycastHit, 거리, 마스크);

   

   

화면상의 픽셀(포인트)를 Ray로 변환하기

RaycastHit hit;

Ray ray = Camera.main.ScreenPointToRay( Input.mousePosition );

if( Physics.Raycast( ray, hit, Mathf.Infinity ) )

{

hit.collider.gameObject;

}