我正在使用C#的无状态状态机,但是我以前在其他状态机实现中遇到过这个问题。虽然我可以添加一些虚拟代码,但问题大多是理论性的。
我有一个情况,我不太确定如何解决。假设您有2种状态(行走和奔跑),它们都可以转换为第3种状态(跳跃)。一旦完成第3种状态,我希望回到调用者状态。在某种程度上,我必须能够影响被调用者触发器,但这仅传递给OnEntry等函数,而不是状态本身。
使用EntryFrom似乎行不通,因为没有办法影响“跳跃”状态本身,只有OnEntry函数。 使用PermitDynamic似乎也不起作用,因为一旦进入“跳跃”状态,我就无法知道自己来自哪里。
我可以使用两个跳跃状态(jumpfromrun、jumpfromwalk),并带有单个OnEntry函数,以最小化一些重复代码。这是我目前使用的方法。
我可以将先前的状态保存在外部变量中,并将其传递给我的状态更新。我不想这样做(绝对不想)。
是否有已知的技术或方法来处理这种问题?共享状态,应该返回到调用者? 谢谢!
我有一个情况,我不太确定如何解决。假设您有2种状态(行走和奔跑),它们都可以转换为第3种状态(跳跃)。一旦完成第3种状态,我希望回到调用者状态。在某种程度上,我必须能够影响被调用者触发器,但这仅传递给OnEntry等函数,而不是状态本身。
使用EntryFrom似乎行不通,因为没有办法影响“跳跃”状态本身,只有OnEntry函数。 使用PermitDynamic似乎也不起作用,因为一旦进入“跳跃”状态,我就无法知道自己来自哪里。
我可以使用两个跳跃状态(jumpfromrun、jumpfromwalk),并带有单个OnEntry函数,以最小化一些重复代码。这是我目前使用的方法。
我可以将先前的状态保存在外部变量中,并将其传递给我的状态更新。我不想这样做(绝对不想)。
是否有已知的技术或方法来处理这种问题?共享状态,应该返回到调用者? 谢谢!