물체를 이동시킬때 이동하는 방향이 막혔는지의 여부를 알거나
현재 화면상의 객체를 선택(피킹)할때 가상의 레이저(직선)을 그어 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;
}
'프로그래밍 > Unity' 카테고리의 다른 글
[Unity] AssetBundle (0) | 2018.08.24 |
---|---|
[unity3d] 서피스 쉐이더 정리 (1) | 2018.06.26 |
[Unity] Mesh 생성 및 변경 (0) | 2011.06.24 |
[Unity] 인스펙터에 UI 추가하기 (0) | 2011.06.15 |
2D를 위한 Plane 생성 (0) | 2011.05.30 |
2D 게임을 위한 몇가지 (0) | 2011.05.09 |
터치 입력 (0) | 2011.04.04 |
스크립트에서 오브젝트/컴포넌트 접근 및 활성화 (0) | 2011.02.11 |
강체-RigidBody 기본속성 (0) | 2011.02.03 |
[Unity3D] 오브젝트 회전 - Quaternion (0) | 2011.02.01 |