TIL 0313 최종 프로젝트 - 4 / NavMesh 사용

강성원·2024년 3월 24일
0

TIL 오늘 배운 것

목록 보기
50/70

NavMesh

A*알고리즘이나 다른 AI 길찾기 알고리즘을 공부해서 쓰면 프로토타입이 지연될 것 같아서 공부한 FSM 구조와 NvaMesh를 같이 사용해보기로 했다.

설치

2022.2 버전부터 패키지 매니저를 통해서 설치할 수 있게 됐다.

적용

NavMesh를 적용하는 방법은 여러가지이지만 하나만 써보겠다.

  • 우선 여러 지형 지물을 하나의 부모로 묶어주고 [AI - NavMesh Surface] 컴포넌트를 추가해준다.
  • 그리고 [Collect Object]를 [Current Object Hierachy]로 선택해주어 자식 오브젝트를 베이크 대상으로 해준다.
  • 이 상태로 Bake 해준다.

SetDestination

  • 오브젝트가 다른 오브젝트를 따라가는 것은 [NavMesh Agent] 컴포넌트를 붙여주면 된다.
  • 그리고 코드 상에서 SetDestination 메서드를 호출하여 원하는 위치로 향하게 할 수 있다.
    Nma는 NavMeshAgent형의 참조 변수이다.

정지 거리 세팅

[NavMesh Agent] 컴포넌트가 달린 오브젝트는 목표위치까지 도달 하기 전에 멈춰줄 수 있다.

  • [Stopping Distance]를 설정해주면 목표물과의 거리가 [Stopping Distance]와 같아지면 자연스레 멈추게 된다.
  • 코드 상으로도 변경할 수 있어서 특정한 상황에서 위치까지 멈추지 않고 도달하게 할 수 있다.

간단한 결과물 gif

profile
개발은삼순이발

0개의 댓글