[TIL-260120] 레이캐스트

데비·2026년 1월 20일

본과정

목록 보기
36/64

오늘 배운 내용

- 레이캐스트(Raycast)


레이케스트(Raycast)

  • 흔히 Fps게임에서 저격총을 구현할때 많이 사용한다.
  • 게임 AI가 시야내에 적이 없는지 구분할때 사용한다.
  • 매 프레임마다 레이캐스트를 사용하면 많은 연산을 사용하게되므로 주의 해야한다.

- Raycast란?

  • 레이캐스트는 시작지점부터 일직선상으로 진행되는 레이저를 발사하고, 레이저에 닿는 오브젝트를 검출하는 기능이다.
  1. FPS
    • Fps 게임의 에임에서 사용된다.
    • 탄의 발사 경로부터 에임 범위에 들어오는 플레이어의 닉네임이 표시되는 기능도 레이캐스트를 사용한다.
  2. 게임 내 오브젝트 선택과 상호작용
    • 게임 내에서 마우스로 오브젝트를 선택할 수 있는 기능도 레이캐스트를 사용한다.
    • 카메라로부터 시작된 레이캐스트에 닿는 오브젝트를 선택한 것으로 구현한다.
private float _findDistance

private void DetectObjectInFront()
{
	Ray ray = new Ray(transform.position, transform.forward * _findDistance);
    RaycastHit hit;
    
    if (Physics.Raycast(ray, out hit, _findD
   istance))
    {
    	Debug.Log($"{name} : {hit.transform.name}")
    }
}

기즈모(Gizmos)

  • 기즈모는 실제 게임에서는 구현되지 않는 개발자의 테스트를 위한 도구이다.
private Ray _ray;

private void OnDrawGizmos()
{
	if(IsSelect)
    {
    	Gizmos.color = Color.red;
        Gizmos.DrawRay(_ray.origin, _ray.direction * _findDistance)
    }
}

0개의 댓글