본문 바로가기

Programming/Unity3D

[팀 프로젝트]Nav Mesh Agent

원래 계획은 Rotate와 Gravity 함수를 구현하여 캐릭터를 이동시킬 계획이였으나,

공부를 하던중 중력값 구현을위해 끊임없이 캐릭터들이 Raycast를 쏘는것이 비효율적이라는걸 알게 된후 회의끝에 Nav Mesh Agent를 이용하기로했습니다.

Nav Mesh Agent란..

최단거리 이동을 위해 A*알고리즘을 구현하여 사용해야하고 이동속도 회전값 가속도등을 다 구현해줘야하지만...

Nav Mesh Agent를 이용하면 이것들을 아주 손쉽게 구현할수있습니다.

사용할 캐릭터에 Add Component에서 Nav Mesh Agent를 추가하면.

이런게 뜹니다.

Agent radius 에이전트의 반지름 (pathfinding을 목적으로만 사용되며, 실제 오브젝트와는 다를 수 있고 일반적으로 더 큽니다).

그다음은 속도,가속도,단위당 최대 회전속도,중단 거리 정도 설정할수있게 되어있습니다.

A*알고리즘을 구현할 필요도없이 최단거리로 이동을 시켜줍니다....짱짱맨.~~

이제 Terrain을 Navi Mesh로 구울차례.

하지만.기본적으로 Mesh Render로 구워버리면..~~

제일 간편한다.

스태틱으로 등록되어있는 모든 에셋들이 구워지면서 이동가능지형(파란색)은 너무 복잡해지고 필드가 평면이 아니고 곡선이 존재하는순간 각 부분부분을 모두 이동 가능,불가 지역으로 구분하면서 아주 멋지게 굽히는거 같지만...

실제로 테스트해본결과 내 PC에서는 괜찮으나 노트북이나 휴대폰으로가니 FPS가 40이하로 떨어지는걸 확인한순간 좌절했습니다.

이걸 어떻게 처리해야만 하지.......

.....

....

굳이 작은돌이나 물건은 피해갈 필요가없는데 하나하나 구분하면 Static을 해지하기엔 너무 많이 배치햇는 내잘못이기도...

처음으로 난관에 부딛쳤습니다.

아무리 로직을 잘짜도 이미 배경작업에서......FPS가 느려진다는건 최적화 실패의 지름길이기때문에 조금더 생각을 해보기로....

...

 

'Programming > Unity3D' 카테고리의 다른 글

[팀 프로젝트]Mecanim  (0) 2015.03.14
[팀 프로젝트]Nav Mesh Agent 2  (0) 2015.03.14
[팀 프로젝트]지형 만들기2  (0) 2015.03.12
[팀 프로젝트]지형 만들기  (0) 2015.03.11
팀 프로젝트 시작.  (0) 2015.03.10