ImtStateMachine
- Sinoa/IceMilkTea - StateMachine.cs
sample
using IceMilkTea.Core;
using UnityEngine;
public class Hoge : MonoBehaviour {
private enum StateEventId {
Event,
}
private ImtStateMachine<Hoge> stateMachine;
private int fuga = 1;
private void Awake() {
stateMachine = new ImtStateMachine<Hoge>(this);
stateMachine.AddTransition<AScene, BScene>((int) StateEventId.Event);
stateMachine.SetStartState<AScene>();
}
public void Start() {
this.UpdateAsObservable()
.Subscribe(_ => stateMachine.Update());
}
private class AScene : ImtStateMachine<Hoge>.State {
protected internal override void Enter() {
var fuga = Context.fuga;
}
protected internal override void Exit() {
}
}
private class BScene : ImtStateMachine<Hoge>.State {
protected internal override void Enter() {
}
protected internal override void Exit() {
}
}
}