设计模式之命令模式(Command)
发表于2018-10-25
首先要感谢Game.Programming.Patterns(游戏编程模式)》一书,让我对设计模式有了更加全面的理解,因为书中都是C语言的示例,无奈对C又知之甚少,在此就个人的理解,对书中命令模式章节的示例,尝试用C#写一下,如果有不恰当的地方还希望大家指出~~
大大推荐的《实现:键盘输入触发角色行为
键盘输入 发出命令 具体命令执行
定义角色行为命令:
//执行函数“Execute”参数:执行该行为的对象(角色)
//游戏行为基类, 根据需求是否继承MonoBehaviour
//撤销。将每一次单独保存,撤销时还原到上一个行为即可。
//多步撤销,用Stack或List依次保存每次行为,撤销时还原到上一个行为,同时删除当前及以后的行为。
//(另,关于数据结构,Move行为只是为了演示利用命令模式实现撤销操作,使用时还是要考虑实际情况。比如只是撤销角色位置移动,可以把位置信息Vector3用一个Stack或List记录下来,撤销时取上一个位置信息给角色赋值,如果撤销的操作比较多,既有角色位置信息,还有HP、MP等等,这时候就需要用类来记录完整的角色信息了)
定义角色及具体行为表现:
//通过行为命令调用角色函数,再执行具体对象的具体行为
按键输入,触发行为:
//自定义按键事件:定义按键(指针),在"InputConfig"函数中,给按键绑定行为(方法),这样在按键输入以后,会自动调用自定义绑定的行为。
//控制多角色,可以随时切换角色,触发当前选择角色的行为
//玩家自定义按键功能: 输入按键 与 执行命令 分开,