오늘 배운 내용
- 레이캐스트(Raycast)
레이케스트(Raycast)
- 흔히 Fps게임에서 저격총을 구현할때 많이 사용한다.
- 게임 AI가 시야내에 적이 없는지 구분할때 사용한다.
- 매 프레임마다 레이캐스트를 사용하면
많은 연산을 사용하게되므로 주의 해야한다.
- Raycast란?
- 레이캐스트는
시작지점부터 일직선상으로 진행되는 레이저를 발사하고, 레이저에 닿는 오브젝트를 검출하는 기능이다.
- FPS
- Fps 게임의 에임에서 사용된다.
- 탄의 발사 경로부터 에임 범위에 들어오는 플레이어의 닉네임이 표시되는 기능도 레이캐스트를 사용한다.
- 게임 내 오브젝트 선택과 상호작용
- 게임 내에서 마우스로 오브젝트를 선택할 수 있는 기능도 레이캐스트를 사용한다.
- 카메라로부터 시작된 레이캐스트에 닿는 오브젝트를 선택한 것으로 구현한다.
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)
}
}