ステートマシン
はじめに
ステート・マシンは、状態管理を 単純化するために設計されている。ステートマシンは常に正確に1つの状態にあり、(トリガーによって定義された)特定の条件が満たされたときに状態間を遷移する。 ステート・グループは、複数のステート間で共有されるロジックを束ねる便利な方法だが、グループそのものはステートではない。 ステートと同じAPIを提供するが、すべてのサブステートに動作とトリガーを分散させる。
ステートマシンは3つの主要コンポーネントから構成される:
- 州
- グループ
- トリガー
ステートマシン
ステートマシンの定義
ステートマシン定義器
コンポーネント内部にステートマシンを作成する場合、StateMachineDefinerのインスタンスが使用されます。
プロパティ
プロパティ | タイプ | 説明 |
---|---|---|
世界 | 世界 | 世界への言及。 |
イード | イード | 現在のコンポーネントのエンティティID。 |
スキーマ属性 | ワールド属性 | ワールドスコープにおける現在のコンポーネントのスキーマへの参照。 |
データ属性 | ワールド属性 | ワールドスコープにおける現在のコンポーネントのデータへの参照。 |
次のコードは、空のステート・マシンを定義する方法の例である:
ecs.registerComponent({
...
stateMachine: ({world, eid}) => {
// ここで状態を定義する
},
})