Table of Contents

Class StateMachine<TKey>

Namespace
Framework.Patterns.Pure.StateMachine
Assembly
Assembly-CSharp.dll

키 기반 상태 전환 관리. 비동기 Enter/Exit 순서 보장. 재진입 시 이전 CTS 취소. [규칙] 상태 데이터 직접 보유 금지 — 상태는 IState 내부에 위치.

public class StateMachine<TKey>

Type Parameters

TKey
Inheritance
object
StateMachine<TKey>

Properties

CurrentKey

현재 상태 키.

public TKey CurrentKey { get; }

Property Value

TKey

Methods

AddState(TKey, IState)

상태 등록. 이미 등록된 키면 덮어쓴다.

public void AddState(TKey key, IState state)

Parameters

key TKey
state IState

ChangeStateAsync(TKey, CancellationToken)

비동기 상태 전환. Exit 완료 후 Enter 실행. 재진입 시 이전 전환 취소.

public UniTask ChangeStateAsync(TKey nextKey, CancellationToken ct = default)

Parameters

nextKey TKey
ct CancellationToken

Returns

UniTask

Exceptions

KeyNotFoundException

미등록 키 접근 시 발생 — 호출자 책임.

Dispose()

public void Dispose()

Tick(float)

현재 상태 Tick. TickRunner에서 매 프레임 호출.

public void Tick(float dt)

Parameters

dt float

Events

OnStateChanged

상태 전환 이벤트. (이전 키, 다음 키)

public event Action<TKey, TKey> OnStateChanged

Event Type

Action<TKey, TKey>