ㄱ. FSM
□ 상태다이어 그램
| Prisoner(재소자) |
![]() |
□ Prisoner의 주요 상태클래스 설명 (FreeTimeState와 BedTimeState)
| FreeTimeState Class |
| - 기본 행동은 Wandering - avoidColliding 죄수가 배회(Wandering) 행동을 할 때, 벽을 피하는 용도의 bool 변수 true가 되면 반대방향으로 돌아간다 - nearby 죄수의 영향범위 콜라이더에 다른 죄수가 닿았을 때 1씩 추가, nearby 값이 클수록 가중치를 받아 교화 진행도를 낮춘다 (빨간게이지가 UP) → +(7 * (nearby * 0.2f)) - 교화활동 죄수가 교화활동을 할 때, nearby의 크기와 반비례해서 교화 진행도가 높아진다 (파란게이지가 UP) → +((7 - nearby) * 0.2f) - 10.0f 시간이 지나면, FreeTimeState으로 상태전이 - drag 죄수를 클릭, 드래그 상태일 때 true가 되는 bool 변수 마우스 클릭을 해제했을 때 false가 된다 독방 위치에 죄수를 드랍하게 되면, SolitaryCellState로 상태 전이 |
| BedTimeState Class |
| - OnEnter에서 진입동작으로 랜덤한 위치의 방까지 이동 (Waypoint 이용) ![]() - drag 위와 동일 - arrival 방까지 도착하면 true가 되는 bool 변수 도착 후 랜덤으로 RestState, TalkState으로 상태 전이 - 10.0f 시간이 지나면, FreeTimeState으로 상태전이 - OnExit에서 진출동작으로 Waypoint를 이용해서 운동장으로 나간다 ![]() |
'Development > 프로젝트 (기록용)' 카테고리의 다른 글
| 자동적 에이전트 (배회하기) (2) | 2025.07.29 |
|---|---|
| [2019.] Unity 기반 교도소 과밀화에 대한 시뮬레이션 회고 (1) | 2025.06.09 |


