소소한 개발 공부

[Unity] Raycast 본문

개발/Unity

[Unity] Raycast

이내내 2021. 4. 16. 21:55

Raycast

Ray에 Collider가 닿았는지 판단하기 (닿으면 true 아니면 false)

 

public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

* [=] 표시가 붙은 것은 함수 오버로딩으로 인한 추가적인 매개변수의 디폴트 값

 

Parameter

origin 레이를 쏘는 시작 지점
direction 레이의 방향
maxDistance 레이가 Collider 충돌을 체크할 수 있는 최대 거리
layerMask 레이가 Collider를 선택적으로 검출할 때 참고하는 레이어(Layer)
queryTriggerInteraction 해당 query의 Trigger를 hit할지 여부를 구체화

 

Example

bool rayHit = Physics.Raycast(transform.position, dir, 0.7f, LayerMask.GetMask("Object"));

=> rayHit은 해당 스크립트를 지닌 오브젝트의 위치(transform.position)에서 direction 방향으로 0.7f의 길이만큼 레이를 쐈을 때 "Player" 레이어의 Collider 가 있는지 판단.

 

📝 [참고] https://docs.unity3d.com/ScriptReference/Physics.Raycast.html