我正在 Unity 里开发一个 2D 美式足球游戏。目前我已经实现了一些玩家状态机,并使用一个 IController 接口来区分 AI 和人类输入。

我的主要问题是:是否使用层次化状态机是一个好的方法来处理这个类型的游戏呢?我还打算使用一个事件系统来通知玩家一些关键游戏事件(比如擒抱、误抢、失去控制权),这些事件会触发状态转换或反应。

我的初始想法是这样:
PrePlayState
└── LineupState

ActivePlayState
├── OffenseState
└── BallCarrierState
├── RunState
├── SpinState
├── StiffArmState
└── DiveState
└── DefenseState
└── TackleState ...

我非常需要您的反馈,因为我还不知道这个设计是否是一个稳健的方法,是否会造成浪费。我找了很多资料,但因为这个游戏的复杂性,所以都没有找到相关信息。