Raycast


Physics.Raycast

어떤 콜라이더와 레이가 충돌했으면 true, 아니면 false.


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데이터 저장용 배열을 사용한다.

정해진 길이만큼 통과한 오브젝트들의 이름을 반환한다.

반응형

+ Recent posts