SamplePosition 란?
- NavMesh는 길찾기 기능을 지원한다.
- NavMesh를 통해 경로 탐색을 하다 보면 다음 경로가 유효한지에 대한 검증이 필요한데,
- 이때 사용할 수 있는 NavMesh 내장 함수이다.
SamplePosition 함수 요소
public static bool NavMesh.SamplePosition(
Vector3 sourcePosition,
out NavMeshHit hit,
float maxDistance,
int areaMask
)
- sourcePosition: 탐색할 위치
- hit: 탐색 결과 (NavMeshHit 에 저장)
- maxDistance: sourcePosition으로부터 탐색할 거리
- areaMask: 탐색할 NavMesh의 영역 정보
SamplePosition 예제
private Vector3 GetWanderLocation()
{
NavMeshHit hit;
NavMesh.SamplePosition(
transform.position + (Random.onUnitSphere * Random.Range(minWanderDistance, maxWanderDistance)),
out hit,
maxWanderDistance,
NavMesh.AllAreas);
return hit.position;
}
- 현재 위치로부터 랜던함 방향의 좌표를 찾고 해당 좌표를 반환하는 함수
- NavMesh.Samplepostion은 bool 형식을 반환함으로 if문을 통해 사용 가능
- 위 코드처럼 랜덤함 좌표를 찾는데 해당 지역에 유효한 좌표가 없다면 false를 반환하여 좌표를 다시 구하게 할 수 있음