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
적용 순서
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
https://cacodemon.tistory.com/entry/Off-Mesh-Link
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 탭의 속성인 레이어리스트를 이용해서, 네비게이션 베이크 되어있어도
특정 영역은 이동 할 수 없음.
'유니티 & C# 공부' 카테고리의 다른 글
유니티 자격시험 Unity GameDeveloper)8. SendMessage/람다함수와 이벤트함수(Delegate,Action,Fun)/as형변환 (0) | 2021.12.08 |
---|---|
(유니티 자격시험 Unity GameDeveloper)6. 주인공 점수 감소/싱글톤(싱글턴)/발사체/유니티 예약 폴더 (0) | 2021.12.04 |
(유니티 자격시험 Unity GameDeveloper)4. 애니메이션/유한상태머신/가비지콜렉션 GC (0) | 2021.12.02 |
(유니티 자격시험 Unity GameDeveloper)3.이벤트함수/벡터/오일러/법선벡터/충돌/문법/오디오 (0) | 2021.12.01 |
(유니티 자격시험 Unity GameDeveloper) 2. 유니티 기능 (년도 버전차이) (0) | 2021.11.29 |