场景:
我有一个简单的状态机:
快乐之路:
Uninitialized->Initialized->InProgress->Done
不开心的路:
Uninitialized->Initialized->Error
简而言之,我需要在没有外部事件/触发器的情况下进行转换(进入 InProgress 或 Error 状态) 。即初始化状态应立即导致这些状态之一。
问题:
- 从Initialized.Enter()中引起状态转换是否可以?
- 我可以使用状态守卫来做到这一点,但我宁愿在状态守卫中没有非平凡的逻辑(并且初始化很可能很复杂)。
- 如果不行,我该怎么做?
- 我是否应该一起从 FSM 中做出这个决定,并让其他一些组件导致适当的过渡?但是,我是否还必须从Initialized.Enter()中调用该外部组件?所以它什么也没解决?