Class StateMachine<TKey>
- Namespace
- Framework.Patterns.Pure.StateMachine
- Assembly
- Assembly-CSharp.dll
키 기반 상태 전환 관리. 비동기 Enter/Exit 순서 보장. 재진입 시 이전 CTS 취소. [규칙] 상태 데이터 직접 보유 금지 — 상태는 IState 내부에 위치.
public class StateMachine<TKey>
Type Parameters
TKey
- Inheritance
-
objectStateMachine<TKey>
Properties
CurrentKey
현재 상태 키.
public TKey CurrentKey { get; }
Property Value
- TKey
Methods
AddState(TKey, IState)
상태 등록. 이미 등록된 키면 덮어쓴다.
public void AddState(TKey key, IState state)
Parameters
keyTKeystateIState
ChangeStateAsync(TKey, CancellationToken)
비동기 상태 전환. Exit 완료 후 Enter 실행. 재진입 시 이전 전환 취소.
public UniTask ChangeStateAsync(TKey nextKey, CancellationToken ct = default)
Parameters
nextKeyTKeyctCancellationToken
Returns
- UniTask
Exceptions
- KeyNotFoundException
미등록 키 접근 시 발생 — 호출자 책임.
Dispose()
public void Dispose()
Tick(float)
현재 상태 Tick. TickRunner에서 매 프레임 호출.
public void Tick(float dt)
Parameters
dtfloat
Events
OnStateChanged
상태 전환 이벤트. (이전 키, 다음 키)
public event Action<TKey, TKey> OnStateChanged
Event Type
- Action<TKey, TKey>