位置: 编程技术 - 正文
推荐整理分享游戏编程设计模式-命令模式Unity示例(游戏编程设计模拟软件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:游戏编程设计模板图片,游戏编程设计模式,游戏编程项目,游戏编程制作,游戏编程模型,游戏编程设计模拟软件,游戏编程设计模板图片,游戏编程设计模式,内容如对您有帮助,希望把文章链接给更多的朋友!
在游戏编程里面,有一个经常会被用到的设计模式-命令模式。
我对设计模式的理解是
1、为解决问题而生。
2、有大致流程,但是没有固定式
3、为了沟通方便。
在游戏编程里面,或者软件开发里面,最能体现命令模式的应用场景是
"撤销"与"再做"
在策略游戏里面,有时候我们会提供给玩家去模拟下一步的功能,在他还没确定之前都是能够撤销我们的行为的。比如象棋,比如五子棋,或者在商店系统的时候,玩家购买完东西后悔了,我们可以让玩家去撤销操作。
在编写游戏工具给策划同事使用的时候,没有撤销功能的话会被亲爱的策划骂成狗的。
。。。
等等上面的需求出现之后,我们就可以考虑运用我们的命令模式来解决这个问题。
命令模式的宗旨是让命令类化,为了解耦,命令类将利用ConreteCommand类脱离宿主(接受命令的人,Reciver)的束缚,仅提供的是能够传入宿主的方法,自成一体。而命令与宿主之间的联系是靠一个Invoker来进行命令分发到宿主的。,Invoker里面包涵类的实例化,实例化的时候才挂钩命令与宿主。实例化命令之后就能够进行命令的调用了。
而作为最上层的调用客户,我们就是利用Invoker来进行操作的。
在我的这个例子里面,要演示的是如何利用命令模式去实现回退与重复。
小方块能够在移动之后利用UNDO返回之前的地点,也能利用REDO继续最后一步的时候的方向。
ClickTest.cs 按钮操作的类,Client
Command.cs 命令的抽象
ConcreteCommands.cs 具体的命令。
Cube.cs 方块的类,类里有各个方向移动的方法而已。
CubeController.cs 这家伙就是Invoker了,里面有一个命令的数组,保存命令只用,还有因为要去关联我们宿主,必须要有属性指向我们的Cube.Invoker的调用分三块,Undo,Redo,Go.分别对应三大类型的移动。
CubeEvent.cs 只是一个Enum而已,定义我们的方向。
链接:
判断攻击范围 //1、只攻击正前方的单位,向前发射一条射线,攻击碰到的单位RaycastHithit;//range射线的长度,即攻击范围,maskTarget敌方单位的mask,只攻击敌方单位if(Phy
unity商店demo学习:跑酷游戏 本文素材和代码全部来自unityassetstore里面的3DInfiniteRunnerToolkit项目步骤场景一:TitleScene1搭建开始界面场景这个场景是开启游戏的第一个界面,用于选择
跑酷角色左右移控制 //使角色能够左右移动voidMoveLeftOrRight(){if(Input.GetKey(KeyCode.A)){if(currentHorizontalDistance=-maxHorizontalDistance){return;}transform.Translate(Vector3.left*Time.deltaTime*horizontalMo
标签: 游戏编程设计模拟软件
本文链接地址:https://www.jiuchutong.com/biancheng/369388.html 转载请保留说明!友情链接: 武汉网站建设