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