자연스러운 군중 AI
NavMeshAgent 기반으로 NPC가 자율적이고 자연스러운 군중 행동을 수행합니다.
개요
보통 NPC:
목표지점 이동
NPC Mentality:
- 서로 피해감
- 가게 구경
- 주변 사람 쳐다봄
- 갑자기 멈춤
- 길 막히면 우회
컴포넌트
CrowdNPC — MonoBehaviour. NavMeshAgent가 함께 있어야 합니다.
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
WanderRadius | float | 10f | 배회 반경 (미터) |
BehaviorChangeCooldown | float | 3f | 행동 전환 주기 (초) |
CurrentBehavior | CrowdBehaviorType | — | 현재 행동 (읽기 전용) |
CrowdBehaviorType 열거형
public enum CrowdBehaviorType
{
Wander, // 반경 내 무작위 이동
BrowseShop, // 주변 상점으로 천천히 이동
LookAround, // 멈추고 주변 둘러보기 (1-3초)
StopAndObserve, // 완전 정지 (1-2초)
AvoidObstacle, // 장애물 우회
Hurt, // 부딪힌 척 살짝 비틀거림
Idle // 제자리
}
행동 상세
| 행동 | 이동 속도 | 설명 |
|---|---|---|
Wander | 기본 | 반경 내 무작위 목적지로 이동 |
BrowseShop | ×0.5 (천천히) | "Shop" 태그 오브젝트 근처로 이동 |
LookAround | 0 (정지) | 1~3초간 천천히 회전 |
StopAndObserve | 0 (정지) | 1~2초간 완전 정지 |
AvoidObstacle | 기본 | 약간 오프셋된 새 목적지로 이동 |
Idle | 0 (정지) | 아무것도 하지 않음 |
예제
기본 사용
// 1. GameObject에 NavMeshAgent 추가
// 2. CrowdNPC 컴포넌트 추가
// 3. Inspector에서 설정 후 Play — 자동 동작