WEBVTT 00:00:00.361 --> 00:00:03.180 Unity에서 게임 오브젝트는 00:00:03.180 --> 00:00:05.180 Nav Mesh Agent 컴포넌트를 이용해 NavMesh가 있는 씬을 00:00:05.180 --> 00:00:07.180 손쉽게 탐색할 수 있습니다. 00:00:08.527 --> 00:00:10.527 여기 유니티에 씬이 하나 있습니다. 00:00:10.527 --> 00:00:13.137 씬은 이미 NavMesh를 Bake해 놓았습니다. 00:00:14.358 --> 00:00:16.973 또한 씬에는 빈 게임 오브젝트가 있고 00:00:16.973 --> 00:00:19.327 이것은 탐색 목표가 될 겁니다. 00:00:21.088 --> 00:00:23.715 마지막으로, Nav Mesh Agent를 적용할 00:00:23.715 --> 00:00:25.715 Capsule이 있습니다. 00:00:26.148 --> 00:00:29.717 Capsule에는 SampleAgentScript가 붙어 있습니다. 00:00:30.286 --> 00:00:33.008 이 스크립트에는 public 변수 Target이 있고 00:00:33.008 --> 00:00:35.880 이 변수는 이미 Target이라는 00:00:35.880 --> 00:00:37.880 빈 게임 오브젝트에 설정되어 있습니다. 00:00:38.842 --> 00:00:40.842 Nav Mesh Agent를 추가하려면 00:00:40.842 --> 00:00:43.111 Inspector 뷰에서 Add Component 버튼을 클릭하고 00:00:43.111 --> 00:00:45.409 이어서 00:00:45.409 --> 00:00:47.983 [Navigation]-[NavMesh Agent]를 선택합니다. 00:00:50.168 --> 00:00:52.168 에이전트는 값을 수정하여 행동 양상을 변경할 수 있는 00:00:52.168 --> 00:00:54.835 여러 설정들을 가지고 있습니다. 00:00:55.438 --> 00:00:58.580 Radius 은 에이전트의 반경을 나타냅니다. 00:00:58.580 --> 00:01:02.183 Speed는 에이전트의 최고 속도입니다. 00:01:03.212 --> 00:01:05.212 Acceleration은 에이전트가 얼마나 빨리 가속할 수 있는지 00:01:05.212 --> 00:01:07.029 지정합니다. 00:01:07.395 --> 00:01:09.943 Angular Speed는 에이전트가 얼마나 빨리 00:01:09.943 --> 00:01:11.943 회전할 수 있는지 지정합니다. 00:01:12.769 --> 00:01:14.769 Stopping Distance 속성은 00:01:14.769 --> 00:01:16.769 에이전트가 표적을 앞두고 00:01:16.769 --> 00:01:19.368 속도를 늦추기 시작하는 거리입니다. 00:01:21.301 --> 00:01:23.824 Auto Traverse Off Mesh Links는 00:01:23.824 --> 00:01:25.824 에이전트가 00:01:25.824 --> 00:01:28.482 Off Mesh Links를 자동으로 사용할지를 지정합니다. 00:01:29.328 --> 00:01:31.328 Off Mesh Links에 관해 자세한 사항은 00:01:31.328 --> 00:01:33.666 아래 링크된 학습 자료를 참고하십시오. 00:01:35.521 --> 00:01:37.521 Auto Braking은 00:01:37.521 --> 00:01:40.128 에이전트가 목적지에 접근하면 자동으로 제동하는지 지정합니다. 00:01:40.733 --> 00:01:43.155 이것을 체크해 두면 에이전트가 00:01:43.155 --> 00:01:45.155 표적을 지나쳐가지 않도록 방지합니다. 00:01:46.405 --> 00:01:48.405 Auto Repath를 체크하면 00:01:48.405 --> 00:01:50.405 현재의 경로가 유효하지 않게 되었을 때 00:01:50.405 --> 00:01:52.926 에이전트가 경로를 재구축합니다. 00:01:53.933 --> 00:01:57.088 Height 속성은 에이전트의 높이입니다, 00:01:57.685 --> 00:02:00.555 Base Offset은 00:02:00.555 --> 00:02:02.555 에이전트 콜라이더의 세로 오프셋입니다. 00:02:04.264 --> 00:02:06.209 Obstacle Avoidance Type에는 00:02:06.209 --> 00:02:08.209 여러 가지 옵션이 있습니다. 00:02:08.209 --> 00:02:11.781 회피의 품질 수준이 높으면 회피가 더 정확합니다. 00:02:11.781 --> 00:02:15.007 회피의 품질 수준이 낮으면 회피가 효율적입니다. 00:02:16.674 --> 00:02:18.674 Avoidance Priority는 00:02:18.674 --> 00:02:21.421 탐색할 때 어느 에이전트가 우선순위를 가지는지 결정합니다. 00:02:22.018 --> 00:02:25.473 우선순위가 높은 에이전트가 낮은 번호를 가져야 합니다. 00:02:26.740 --> 00:02:29.847 마지막으로 NavMesh Walkable 속성은 00:02:29.847 --> 00:02:31.847 에이전트가 이동할 수 있는 00:02:31.847 --> 00:02:34.082 내비게이션 레이어를 명시합니다. 00:02:34.791 --> 00:02:37.459 내비게이션 레이어에 관해 자세한 사항은 00:02:37.459 --> 00:02:41.404 아래 링크된 NavMesh 베이킹 강좌를 참고하십시오. 00:02:42.446 --> 00:02:44.446 한 가지 짚고 넘어가야 할 것은, 00:02:44.446 --> 00:02:46.030 이런 속성들을 변경하여 00:02:46.030 --> 00:02:48.460 넓은 범위의 각종 효과를 얻을 수는 있지만, 00:02:48.460 --> 00:02:52.408 대부분 상황에서는 기본 속성에서도 잘 돌아간다는 것입니다. 00:02:53.783 --> 00:02:55.783 Nav Mesh Agent 컴포넌트를 00:02:55.783 --> 00:02:57.783 생성하고 설정했으면 00:02:57.783 --> 00:03:00.473 이제 어디로 갈 것인지 알려주기만 하면 됩니다. 00:03:02.699 --> 00:03:05.366 SampleAgentScript에는 00:03:05.366 --> 00:03:07.824 NavMeshAgent형 변수 00:03:07.824 --> 00:03:12.181 agent가 선언되어 있군요. 00:03:13.848 --> 00:03:17.631 Start 메소드에서는 NavMeshAgent를 참조하고 00:03:17.631 --> 00:03:20.092 GetComponent 함수를 이용해 00:03:20.092 --> 00:03:23.043 이것을 agent 변수에 보관합니다. 00:03:24.370 --> 00:03:26.846 에이전트에게 어디로 갈지 알려주려면 00:03:26.846 --> 00:03:29.445 NavMeshAgent 클래스의 00:03:29.445 --> 00:03:31.910 SetDestination 메소드를 사용합니다. 00:03:32.487 --> 00:03:35.302 이것은 단일 vector3 함수입니다. 00:03:35.996 --> 00:03:40.526 그럼 SetDestination 메소드를 호출할 텐데, 00:03:40.526 --> 00:03:44.807 Agent.SetDestination을 입력하고 00:03:46.057 --> 00:03:49.647 괄호 안에 00:03:49.647 --> 00:03:51.885 target.position을 입력합니다. 00:03:52.411 --> 00:03:54.900 에이전트에게 타겟 게임 오브젝트가 00:03:54.900 --> 00:03:56.900 있는 곳으로 이동하라고 알려주는 것입니다. 00:03:59.066 --> 00:04:01.829 Unity로 돌아와서 씬을 실행해 보겠습니다. 00:04:02.496 --> 00:04:05.785 Capsule 게임 오브젝트가 움직이기 시작하여 00:04:05.785 --> 00:04:08.343 레벨에서 이동하는 것을 볼 수 있습니다. 00:04:09.079 --> 00:04:12.195 Capsule 이 타겟 게임 오브젝트에 당도하면 00:04:12.195 --> 00:04:14.195 멈추게 될 것입니다.