프로그래밍/Unity
Physics.Raycast
chance
2011. 5. 13. 17:09
물체를 이동시킬때 이동하는 방향이 막혔는지의 여부를 알거나
현재 화면상의 객체를 선택(피킹)할때 가상의 레이저(직선)을 그어 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;
}