방아쇠 수지 증후군 때문에 타이핑이 조금 불편하지만 오늘도 이어서 포스팅하려합니다.
이전의 포스팅과 마찬가지로
혹시 NavMesh Building Component를 다운받지 않았으면 아래 링크에서 먼저 다운로드 해주세요.
다운로드 : github.com/Unity-Technologies/NavMeshComponents
먼저 4_sliding_window_infinite.unity를 열어주세요.
NavMesh가 보이도록 Scene탭을 열고 Navigation탭도 활성화시키고 실행했습니다.
두번째 예제에서 봤던 LocalNavMeshBuilder 클래스가 또 등장하네요. LocalNavMeshBuilder는 아래를 참고..
이번 예제에서 무엇을 말하려고 하는가 했더니 NavMesh의 실시간 업데이트인 것 같습니다.
어떤 내용인지 자세히 보기 위해서 씬 뷰를 확대해봤어요.
나무가 위치한 부분에 구멍이 보이시죠?
NavMesh 빌드가 되면서 발생한 것이에요.
NavMeshAgent는 NavMesh 위에서만 이동하도록 되어있으므로
저렇게 구멍이 뚫리면 길찾기 알고리즘에서 알아서 피해가도록 되어있습니다.
NavMeshSourceTag의 Collect 함수에서 area를 0으로 세팅하고 있는데,
이는 Walkable Area를 의미합니다.
왜 Not Walkable이 아니고 Walkable로 세팅했는데 구멍이 뚫렸을까요?
이유는 에이전트의 세팅값(Radius, Height, Slope, Climb) 등을 고려해서 나무 부분은 이동이 불가능한 지역이라고
판단되기 때문에 hole이 생긴 것입니다.
마지막으로 전체적으로 네비 메시 빌드 과정을 보면
LocalNavMeshBuilder에 Tracked 변수에 에이전트를 연결 시켜놓아
에이전트를 따라다니며 네비 메시 업데이트를 하고 있습니다.
불필요하게 전체 네비 메시를 베이킹 하지않더라도 실시간 부분 베이킹으로
성능 향상에 큰 도움이 되겠네요!!
오픈 월드 구현에서 최적화는 반드시 필요한 부분일텐데요.
이러한 부분이 도움을 줄 수 있을 것 같네요.
오늘도 저번 시간처럼 간단하게 마무리 되었네요.
그럼 다음 예제에서 뵙겠습니다!
'프로그래밍 > 유니티' 카테고리의 다른 글
Unity NavMesh #7 실시간 네비메시 빌드 4 (0) | 2021.03.17 |
---|---|
Unity NavMesh #6 실시간 네비메시 빌드 3 (0) | 2021.02.22 |
Unity NavMesh #4 Up Vector가 자유로운 NavMesh (0) | 2021.02.15 |
Unity NavMesh #3 실시간 네비메시 빌드 (0) | 2021.02.14 |
Unity NavMesh #2 Multiple Agent (0) | 2021.02.03 |
댓글