| * NavMeshAgent를 활용한 군중 시뮬레이션 구현: Plane, Cube 생성하여 바닥과 벽 형태로 하여 배치하고 인스펙터창 좌상단 'Static' 부분 
              클릭한 뒤 Navigation Static 체크. Navigation 창에서 Object탭 Navigation 
              Static, Generate OffMesh Links 체크, Navigation Area: Walkable로 설정한 
              뒤 Bake 버튼 클릭해 네비게이션 맵 생성하기.
 Capsule 생성, 'CapsuleCrowdB'라 
                명명, 'CrowdAgent.cs' 생성, 추가하면 자동으로 Nav Mesh Agent 컴포넌트도 
                추가된다. 파란색 매터리얼 적용해 파란색으로 만들고 프리팹으로 만든다.빈 게임 오브젝트 생성, 'TargetBlue'라 명명, 자식으로 Sphere 추가하고 Sphere Collider를 
                비활성화 시킨다.
 'CapsuleCrowdB' 프리팹의 CrowdAgent-Target에 'TargetBlue' 끌어 
                적용.
 동일하게 CapsuleCrowdR, TargetRed도 생성한 뒤 동일한 작업.
 실행시키면 파란색 캡슐 에이전트들과 빨간색 캡슐 에이전트들이 각각 장애물을 피하며 각각의 타겟으로 향해 이동한다. 
                12:35
 - 열리고 닫히는 문 만들기:문 역할을 하는 Cube 만들고 'MovingDoor'라 명명, NavMeshObstacle 컴포넌트 
                추가하고 Carve: On, Move Threshold: 0.1, Time To Stationary: 
                0.5, Carve Only Stationary: Off로 설정. 문을 위아래로 
                움직이는 'UpAndDown.cs' 생성, 추가.
 | 
          
            | CrowdAgent.cs======================================
//Project-CapsuleCrowdB, CapsuleCrowdR 프리팹에 적용
//지정한 타겟을 향해 이동.
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class CrowdAgent : MonoBehaviour {
     public Transform target;
     private NavMeshAgent agent;
     void Start(){
          agent = GetComponent ();
          agent.speed = Random.Range (4.0f, 10.0f);
          agent.SetDestination (target.position);
     }
}
UpAndDown.cs======================================
//Hierarchy-Obstacles-MovingDoor에 적용
//문 올렸다 내렸다 반복
using UnityEngine;
using System.Collections;
public class UpAndDown : MonoBehaviour {
     private float movDist = 2;
     private bool open = false;
     void Update () {
          if(open){
               transform.Translate (0, -movDist * Time.deltaTime, 0);
               if(transform.position.y <= 2) {
                    open = false;
               }
          } else {
               transform.Translate (0, movDist * Time.deltaTime, 0);
               if (transform.position.y >= 6) {
                    open = true;
               }
          }
     }
}
 |