bool NavMesh.SamplePosition(
Vector3 sourcePosition,
out NavMeshHit hit,
float maxDistance,
int areaMask
)
무엇을 하나요?
- sourcePosition 근처에서 NavMesh에 존재하는 가장 가까운 점을 찾습니다.
- 찾은 점의 정보가 NavMeshHit hit에 채워지고, 찾았으면 true, 못 찾으면 false.
중요 파라미터
- maxDistance: 얼마나 떨어진 곳까지 찾을지(반경). 너무 작으면 실패가 잦아져요. (지금 코드는 1.0f)
- areaMask: 어떤 Area(Walkable/커스텀 Area 등)만 대상으로 할지 비트마스크로 제한.
반환(hit)에서 자주 쓰는 값
- hit.position: NavMesh 위의 실제 좌표
- hit.normal: 그 지점의 표면 노멀(경사 판단 등 가능)
- hit.distance: sourcePosition과 hit.position 거리
- hit.mask: 충돌한 폴리곤의 Area 마스크
팁: SamplePosition은 “가까운 표면 점”만 보장합니다.
그 지점까지 길이 연결되어 있는지(경로 가능)는 보장하지 않아요.
실제로 이동하려면 아래처럼 경로를 꼭 확인하세요:
NavMeshPath path = new NavMeshPath();
if (agent.CalculatePath(hit.position, path) && path.status == NavMeshPathStatus.PathComplete)
{
agent.SetDestination(hit.position);
}
'유니티' 카테고리의 다른 글
| NavMeshHit hit (0) | 2025.08.26 |
|---|---|
| NavMesh.AllAreas/ NavMesh.GetAreaFromName (0) | 2025.08.26 |
| Unity Tmp 텍스트 부분 색 변경 (0) | 2025.08.25 |
| 공지사항 API 서버 만들기 & 실무 확장 흐름 (0) | 2025.08.08 |
| [node.js, 유니티] 공지사항 API 서버 만들기_2탄 (0) | 2025.08.08 |