(유니티 자격시험 Unity GameDeveloper) 5. 네비게이션

2021. 12. 4. 00:10유니티 & C# 공부

반응형

1. 네비게이션

유니티 3은 2010.9 출시 

유니티 3.5 이전 - 자체적으로 길찾기 알고리즘만 제공(A * pathfinding = A스타 패스웨이)

유니티 3.5 이후  - 네비게이션 메쉬 적용 

  

      네비게이션 - 3D 지형/지오메트릭을  분석, 미리 데이터화 해서 가장 최단경로를 계산

                       가장 난이도 쉬운 경로 쪽으로 이동 가능

 

                        A * pathfinding 알고리즘으로 최단 거리로 이동,

 

https://mowingnow.tistory.com/3

 

(유니티 자격시험 Unity GameDeveloper) 2. 유니티 기능 (년도 버전차이)

이재현 강사님 강의 듣고 나름 정리해서 올립니다. 1. 네비게이션 유니티 3은 2010.9 출시 유니티 3.5 이전 - 자체적으로 길찾기 알고리즘만 제공(A * pathfinding = A스타 패스웨이) 유니티 3.5 이후 - 네

mowingnow.tistory.com

 

적용 순서

1) 오브젝트의 인스펙터 창 위쪽에 Static flag 중에서 Navigation Static을 체크

      (static 체크는 고정된 물체일 때 / static flag 중 Off Mesh Link Generation은 끊어진 메쉬를 자동연결)

 

2) Window - AI -navigation - Navigation의 Bake탭 > 하단 bake를 클릭

  

         Bake 탭 프로퍼티(속성)들

                Radius 반지름 - 수치 낮으면 타이트.

                                     타이트한게 좋은거는x 캐릭터가 겹치게 지나가서 파묻히게 됨

                Height  생성높이  - 바짝 붙여만들기

                Max Slope 등판각도 -  경사로

                Step Height   계단 등판높이, 옵션 이하 값 높이까지만 갈 수 있음

                                   height 0.4=40cm 이상 못감,  0.5 = 50cm이상 못감

                 Drop Height  높이 다른 메쉬 연결

 

                Jump Distance  동일 높이에서 메쉬 연결 거리

                                      3) 의 Auto Traverse Off Mesh Link 도 체크해야 한다고 함 (하단 링크들 참고)

 

 

    http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=51278 

 

데브코리아

한국 게임개발자 커뮤니티

devkorea.co.kr

    https://cacodemon.tistory.com/entry/Off-Mesh-Link

 

Off Mesh Link

위 그림에서 바닥, 그리고 두 개의 큐브가 있고 이들을 Bake 한 네비게이션 메시들을 볼 수 있다.Off Mesh Link 는 위처럼 떨어져 있는 네비게이션 메시들끼리 연결해주는 개념으로, 두 가지 빙식이

cacodemon.tistory.com

 

3) NavMeshAgent 컴포넌트  = 시험에서는 Agent

    내비메쉬 데이터를 기반으로 목적지까지 최단거리 계산해서 이동하는 역할

    이동, 회전 가능 

 

    스크립트로 접근 

    Using.UnityEngine.AI 을 먼저 적어줌.

 

    스크립트에서 네비게이션 작동

     agent.isStopped = true;  //네비게이션 작동

 

    스크립트 상 목적지까지 추적하기

     NavMesh Agent변수.SetDestination(좌표값 목적지) 

 

 

2문제 예상

NavMeshAgent 컴포넌트 주요 속성

 Agent Type  기본값은 Humanoid로 지정, 개발자가 추가 정의 가능

 Base Offset  네브메쉬 표면에 붙어 이동되게, 공중에 떠서 보이지 않도록 해줌

 Speed         최대 이동 속도, 가속도 해서 최대 speed

Angular Sped  최대 회전 속도

Accerleration   최대 가속

Auto Braking   체크목표지점에서 지나치므로, 비활성화 하면 목표지점 가까워졌을 때 속도를 줄이고,

                                                                 여러 포인트를 부드럽게 이동할 수 있다

Radius           NaveMeshAgent의 반지름. 

 

Height          수치가 클 수록 넘어갈 수 있는 계단의 스탭(Step) 커짐

Quality          장애물 회피할 때, 많은 에이전트(npc가 많을때)가 있을 때, 천천히 움직이는 캐릭터는 품질을 

                   품질을 낮춰 CPU부하를 줄인다.

Priority          에이전트 간 회피 우선순위를 결정. 낮은 수가 높은 우선순위. 높은 우선순위는 안밀리고, 밀고나간다

Auto Traverse Off Mesh Link    자동으로 분리된 메쉬 간의 링크생성, 점프는 없고, 그냥 직진으로 가게 함

auto Repath    이동 경로가 유효하지 않다면 다시 경로 재탐색

Area Mask      navigation - area 탭의 속성인 레이어리스트를 이용해서, 네비게이션 베이크 되어있어도 

                    특정 영역은 이동 할 수 없음. 

반응형