AI FSM

NPC나 오브젝트에 AI 상태를 설정하는 기능이에요.

샘플맵 바로가기🔗

Scripting

Finite State Machine

오브젝트에 상태 머신🤖을 설정🔧하여 조건에 따른 상태 전환 기능을 제공해요.

FinteState

객체의 각 상태를 나타내요.🧍🏃🧘

ParallelState

FinteState의 하위 상태에요.⛹️

ParallelState를 설정하면 FinteState와 함께 실행돼요.

FiniteState 하위에는 하나☝️의 ParallelState만 생성할 수 있어요.

하나의 FiniteState에 2개 이상의 ParallelState를 설정하면 마지막에 설정한 ParallelState만 적용돼요.⏭️

FSM의 상태 플로우(동작 순서)

각 상태🏃마다 EnterEvent > UpdateEvent > ExitEvent 순으로 진행돼요.

💡하위 상태(ParallelState)가 존재하는 경우, 상위 EnterEvent > 하위 EntetEvent > 상위 UpdateEvent… 순서로 진행돼요.

FSM 사용 함수

함수
사용가능 스크립트
설명

void AddFSM()

Server / Client

대상에게 FSM를 부여해요.

void AddFiniteState (string StateName)

Server / Client

FSM 내부에 상태 추가해요.

void AddParallelState (string StateName)

Server / Client

FSM 추가된 상태에 하위 상태를 추가해요. 각 상태마다 하나씩만 추가할 수 있어요.

EnterEvent

Server / Client

상태가 시작될 때 호출되는 이벤트에요.

UpdateEvent

Server / Client

상태가 진행중일 때 호출되는 이벤트에요.

ExitEvent

Server / Client

상태가 끝날 때 호출되는 이벤트에요.

void AddTransition (string StateName, string StateName, function, number)

Server / Client

다른 상태로 전환할 때 사용하는 함수에요. 시작 상태 이름, 전이할 상태 이름, 연결 함수, 우선순위(0에 가까울수록 높아요.)가 필요해요.

void StartFSM()

Server/Client

FSM를 활성화 해요.

void StopFSM()

Server/Client

FSM를 비활성화 해요.

void GetOrCreateFSM (string StateName)

Client

FSM을 생성하거나 Server에 있는 FSM을 불러와요.

Server에서 FSM 사용 예

Client에서 FSM 사용 예

Last updated

Was this helpful?