https://www.youtube.com/watch?v=RkJyyi6lmQ8&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX

 

 

 


물리 선을 생성해서 여기에 닿는 오브젝트가
뭔지 알아내는 용도



레이는 다른 오브젝트 감지를 위해 많이 쓰는 기능이다

 

 


원리는 콜라이더 가진 오브젝트를
레이저 형식으로 쏴서 검색하는 것


레이저 당할 오브젝트는 꼭 collider 컴포넌트를 가지고 있어야 한다



+



if (Physics.Raycast(transform.position, transform.forward))
{
    // 광선이 어떤 콜라이더에든 닿았을 때 실행되는 코드
    Debug.Log("Hit something!"); 
}

닿았는지(bool 값)만 확인하는 형태

 

 


+

 

 

Ray 의 방향이 올바른지

Ray 의 길이가 적당한지

 

 

 

해당 오브젝트의 Layer 가 제대로 설정되었나 확인하라

 



LayerMask 쓴다면,
Raycast 에서 maxDistance도 같이 써라

벽, 장식은 무시한 특정 대상으로 제한함
지정된 거리 이내만 검사험

+

 


Queries Hit Trigger 

Project Settings → Physics → Queries Hit Triggers

Trigger도 감지해야 하는 경우

Raycast나 Overlap이 너무 많은 Trigger에 걸려서 원치 않는 감지가 너무 많을 때



+



raycast 는 scene 창에서 보이지 않는다

Gizmos.DrawLine ( ) 함수를 쓰면 씬 창에서도 보인다


 

 

 

또는!

Analysis - Physics Debugger 를 활용하면 

실시간 모든 레이 캐스팅을 쉽게 확인 가능함

 

 

 

 

+

 

 

 

마우스 클릭 과 레이 캐스트 를 활용해서

월드 오브젝트를 클릭하는 상호작용 만들기

 

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 // 마우스 위치에서 레이 생성

이걸 이용함


자세한 강좌 링크

https://cafe.naver.com/unityhub/146263?utm_source=youtube-dc&utm_medium=social&utm_campaign=kr_letyouknowanything_raycasting

반응형
Posted by 이름이 익명
: