차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판 | |||
| unity:navmeshandpathfinding [2021/03/03 14:48] – 1.238.85.38 | unity:navmeshandpathfinding [2021/03/03 14:48] (현재) – 1.238.85.38 | ||
|---|---|---|---|
| 줄 3: | 줄 3: | ||
| ======내브메쉬(Navmesh)와 경로찾기(Pathfinding)====== | ======내브메쉬(Navmesh)와 경로찾기(Pathfinding)====== | ||
| - | 네브 메쉬(일명 // | + | 네브 메쉬(일명 // |
| 씬이 변경되었다면, | 씬이 변경되었다면, | ||
| - | 게임의 복잡한 월드에는 많은 에이전트와 동적인 장애물이 있을 수 있고, 월드 내에 여러 영역에 대해 접근성 레벨이 끊임없이 바뀌기도 | + | 게임의 복잡한 월드에는 많은 에이전트와 동적인 장애물이 있을 수 있고, 월드 내에 여러 영역에 대해 접근성 레벨이 끊임없이 바뀌기도 |
| - | 다음은 네브메쉬(navmesh)을 설정하고 에이전트가 이에 기반하여 경로찾기를 하는 예제입니다: | + | 다음은 네브메쉬(navmesh)을 설정하고 에이전트가 이에 기반하여 경로찾기를 하는 예제임: |
| - | * 이 레벨에서 '' | + | * 이 레벨에서 '' |
| - | * 인스펙터(Inspector)에서 창의 오른쪽 코너에 있는 **Static**을 클릭하고 기하구조가 **Navigation Static**으로 마크 업(marked up) 되었는지 확인합니다. | + | * 인스펙터(Inspector)에서 창의 오른쪽 코너에 있는 **Static**을 클릭하고 기하구조가 **Navigation Static**으로 마크 업(marked up) 되었는지 확인함. |
| -> | -> | ||
| * Navigation Mesh 창을 띄웁니다(**Window**-> | * Navigation Mesh 창을 띄웁니다(**Window**-> | ||
| - | * [[unity: | + | * [[unity: |
| - | * 씬(scene)에서 몇 개의 동적 기하구조를 생성합니다(예: 인물). | + | * 씬(scene)에서 몇 개의 동적 기하구조를 생성함(예: 인물). |
| * 에이전트를 하나 설정하고 (혹은 여러 개), 씬(scene)에서 [[class-NavMeshAgent|NavMeshAgent]] 컴포넌트를 동적 기하구조에 추가하여, | * 에이전트를 하나 설정하고 (혹은 여러 개), 씬(scene)에서 [[class-NavMeshAgent|NavMeshAgent]] 컴포넌트를 동적 기하구조에 추가하여, | ||
| - | * 에이전트에 부착된 스크립트에서 에이전트에 목적지를 부여합니다 | + | * 에이전트에 부착된 스크립트에서 에이전트에 목적지를 부여함 (// |
| - | * Play을 누르고 마법을 관람합니다. | + | * Play을 누르고 마법을 관람함. |
| - | 사용자만의 [[class-NavMeshLayers|NavMesh layers]]을 정의하는 것도 가능함을 주목하십시오. 이는 한 부분의 환경이 다른 부분보다 지나가기가 용이한 상황에서 필요합니다. 바로 연결하지 않은 메쉬의 일부분에 대해, [[class-OffMeshLink|Off Mesh Links]]을 생성하는 것도 가능합니다. | + | 사용자만의 [[class-NavMeshLayers|NavMesh layers]]을 정의하는 것도 가능함을 주목하십시오. 이는 한 부분의 환경이 다른 부분보다 지나가기가 용이한 상황에서 필요함. 바로 연결하지 않은 메쉬의 일부분에 대해, [[class-OffMeshLink|Off Mesh Links]]을 생성하는 것도 가능함. |
| <file csharp> | <file csharp> | ||
| 줄 34: | 줄 34: | ||
| UnityEngine.AI.NavMeshAgent agent; | UnityEngine.AI.NavMeshAgent agent; | ||
| - | // Use this for initialization | + | |
| - | void Start () { | + | void Start () { |
| agent = GetComponent< | agent = GetComponent< | ||
| - | } | + | |
| - | + | ||
| - | // Update is called once per frame | + | // Update is called once per frame |
| - | void Update () { | + | void Update () { |
| agent.destination = target.transform.position; | agent.destination = target.transform.position; | ||
| - | } | + | |
| } | } | ||
| </ | </ | ||
| - | |||
| =====자동 오프메쉬(off-mesh) 링크===== | =====자동 오프메쉬(off-mesh) 링크===== | ||
| - | 네브메쉬 기하구조는 자동 오프메쉬(off-mesh)링크 생성에도 마크 업 될 수 있습니다: | + | 네브메쉬 기하구조는 자동 오프메쉬(off-mesh)링크 생성에도 마크 업 될 수 있다: |
| {{: | {{: | ||
| // 자동 오프 메쉬 링크 생성에 대한 기하구조의 마크 업// | // 자동 오프 메쉬 링크 생성에 대한 기하구조의 마크 업// | ||
| - | 이러한 방법으로 마크 업 된 기하구조는 다른 네브메쉬 기하구조로의 링크를 생성하는 [[Navmeshbaking|Navmesh Baking]] 과정에서 체크 될 것 입니다. 이런 방법으로, | + | 이러한 방법으로 마크 업 된 기하구조는 다른 네브메쉬 기하구조로의 링크를 생성하는 [[Navmeshbaking|Navmesh Baking]] 과정에서 체크 될 것 임. 이런 방법으로, |
| - | 자동 생성 오프 메쉬 링크에 할당된 NavMeshLayer는 내장 레이어(built-in layer) // | + | 자동 생성 오프 메쉬 링크에 할당된 NavMeshLayer는 내장 레이어(built-in layer) // |
| 수동으로 //오프 메쉬 링크//를 설정하는 것 역시 가능함을 주목하십시오([[class-OffMeshLink|here]]에 설명 참조). | 수동으로 //오프 메쉬 링크//를 설정하는 것 역시 가능함을 주목하십시오([[class-OffMeshLink|here]]에 설명 참조). | ||
| - | |||
| * 출처: [[http:// | * 출처: [[http:// | ||