TIL (78) | 2023.11.15 | NavMeshAgent

kjg5370·2023년 11월 15일
0

TIL

목록 보기
76/91
post-thumbnail

들어가기 앞서

오늘은 enemy의 ai 경로 지정에 장애물에 막혀 움직이지 않는 문제를 해결하기 위해
NavMeshAgent의 여러 옵션들을 알아보았습니다.

오늘 배운 것

  • NavMeshAgent
    Unity 게임 엔진에서 사용되는 컴포넌트 중 하나.
    이 컴포넌트는 네비게이션 메시(NavMesh)를 기반으로 하는 경로 탐색을 담당.

    • 프로퍼티

      • 에이전트 크기:
        Radius (반경): 에이전트의 반경은 장애물과 다른 에이전트 간의 충돌을 계산하기 위해 사용.
        Height (높이): 에이전트가 장애물 밑으로 지나갈 수 있는 높이 간격.
        Base Offset (베이스 오프셋): 트랜스폼 피봇 포인트와 관련한 충돌 실린더의 오프셋.

      • 스티어링:
        Speed (최대 이동 속도): 에이전트의 최대 이동 속도(초당 월드 단위로).
        Angular Speed (최대 회전 속도): 에이전트의 최대 회전 속도(초당 각도).
        Acceleration (최대 가속): 에이전트의 최대 가속(제곱 초당 월드 단위로).
        Stopping Distance (정지 거리): 에이전트는 목표 위치에 가까워졌을 시 정지.
        Auto Braking (자동 브레이킹): 활성화 시 에이전트는 목적지에 다다를 때 속도를 줄임.
        멀티플 포인트 사이에서 부드럽게 움직여야 하는 순찰과 같은 동작을 할 때에는 비활성화.

      • 장애물 회피:
        Quality (품질): 장애물 회피 품질. 에이전트의 수가 많다면 품질을 줄임으로써 CPU 시간을 절약할 수 있음.
        Priority (우선 순위): 낮은 우선 순위의 에이전트는 이 에이전트의 회피 대상에서 제외.

      • 경로 찾기:
        Auto Traverse OffMesh Link (오프 메시 링크 자동 횡단): 자동적으로 오프 메시 링크를 횡단하려면 트루로 설정.
        Auto Repath (자동 경로 재탐색): 활성화 시 에이전트가 경로 일부분의 끝에 도달하면 경로를 재탐색. 목적지까지 경로가 없다면 목적지에서 제일 가깝게 도달할 수 있는 위치까지 부분적인 경로가 생성.
        Area Mask (영역 마스크): 에이전트가 경로 탐색에 어떤 영역 타입을 고려할 것인지를 설명. 각각의 메시 영역 타입을 설정하여 계단이나 특정 지형을 고려할 수 있음.

  • NavMesh
    게임 환경 내에서 캐릭터 또는 다른 오브젝트가 이동할 수 있는 영역을 정의하는 메시(mesh)

기억 할 것

  • 일반적으로 자주 사용되는 속성들

    • speed (float)
      에이전트의 이동 속도를 나타냄.

    • angularSpeed (float)
      에이전트의 회전 속도를 나타냄.

    • acceleration (float)
      에이전트의 가속도를 나타냄.
      에이전트가 목적지에 도달하기 전에 최대 속도에 도달하는 데 필요한 시간을 제어.

    • stoppingDistance (float)
      에이전트가 목적지에 도달했다고 간주하는 거리를 나타냄.
      에이전트는 이 거리 이내에 도달하면 정지.

    • radius (float)
      에이전트의 실린더의 반경을 나타냄.
      이 값은 충돌을 피하거나 경로를 조정할 때 사용.

    • height (float)
      에이전트의 실린더의 높이를 나타냄.
      수직 충돌 및 경로 계산에 영향.

    • baseOffset (float)
      실린더의 베이스와 게임 오브젝트의 중심 간의 수직 오프셋을 나타냄.

    • obstacleAvoidanceType (ObstacleAvoidanceType)
      장애물 회피 방법을 나타냄.
      ObstacleAvoidanceType 열거형으로 설정됨.

    • destination (Vector3)
      에이전트의 현재 목적지를 나타냄.

    • isStopped (bool)
      에이전트가 현재 멈춰 있는지 여부를 나타냄.

    • path (NavMeshPath)
      에이전트의 현재 경로를 나타냄.

    • autoBraking (bool)
      에이전트가 목적지에 도달하면 자동으로 브레이킹(멈춤)을 할지 여부를 나타냄.

profile
학생입니다

0개의 댓글