如何设计一个系统来实现输入动作的层级结构,层级结构中某些动作可以被特定动作中断,而其他动作不能被中断等问题。

假设玩家正在携带一个箱子。玩家可以通过按键[E]将箱子丢弃。玩家将箱子运到门口。玩家按键[E]时,门应打开,箱子不应掉落。

在这个例子中,我可以简单地编码如下:如果射线检测击中了<门>,则打开<门>,否则如果玩家手中有箱子,射线检测不击中<门>,则丢弃箱子。

这是一个好解决方案,适用于这个情况,但是如何设计一个系统来实现这样的输入动作层级结构和输入层级呢?我可以使用一个很长的(非常非常长的)if-else语句列表来实现,但是这并不是可伸缩的。

由于只有有限的键,偶尔会有使用小集合键的偏好,按键可以执行多个动作的情况会很多。

显然,动作有条件(如果正在看门,按键打开门。如果正在看箱子,按键捡起箱子。如果手中有箱子,不看门,按键丢弃箱子),但是如上所述,这将导致一个很长的if-else语句列表。

如果有人能指出正确的方向,提供一些例子,展示一个按键可以执行多个动作的例子,展示一些代码等,我将感激不尽。

感谢您的帮助。