当前位置: 首页 > wzjs >正文

漳平建设局网站做网站成品

漳平建设局网站,做网站成品,如何做网站赚流量钱,百度网站排名突然消失命令模式是一种行为设计模式,它将请求封装成一个对象,从而允许你使用不同的请求、队列或日志来参数化其他对象,同时支持请求的撤销与恢复。 优点: 1.解耦调用者与接收者​​:输入处理无需直接调用角色方法 2.支持撤销…

命令模式是一种行为设计模式,它将请求封装成一个对象,从而允许你使用不同的请求、队列或日志来参数化其他对象,同时支持请求的撤销与恢复。

优点:

1.解耦调用者与接收者​​:输入处理无需直接调用角色方法
2.支持撤销和恢复:通过实现撤销命令,可以方便地实现操作的撤销和恢复功能。
​​3.扩展性强​​:新增命令不影响现有代码

缺点:

1.​​类数量膨胀​:使用命令模式时,每一个具体的操作都需要创建一个具体的命令类。如果系统中有大量不同的操作,那么就会产生大量的命令类。
优化:1.使用​​泛型命令基类​​   2.通过委托/Lambda​​ 简化简单命令
2.​​内存占用高​:为了支持撤销和恢复操作,需要保存大量的命令对象,这会占用大量的内存空间。
优化:1.实现​​命令对象池​​     2.使用 ​​结构体命令​​(适用于简单场景)
3.​​撤销实现复杂​:
优化:1.快照模式保存状态   2.增量式撤销(仅记录状态变化)

说明例子:

1.UML类图:

2.实现:

1.定义接收者:

public class Receiver1
{public void Action(string Command){Debug.Log("Receiver1.Action: Command['+Command+']");}
}public class Receiver2
{public void Action(int Param){Debug.Log("Receiver2.Action: Param['+Param.ToString()+']");}
}

2.定义命令基类:

public abstract class Command
{public abstract void Execute();
}

3.定义具体命令类:

public class ConcreteCommad1 : Command
{Receiver1 m_Receiver1 = null;string m_Command = "";public ConcreteCommad1(Receiver1 receiver1,string command){this.m_Receiver1 = receiver1;this.m_Command = command;}public override void Execute(){this.m_Receiver1.Action(m_Command);}
}

 4.定义调用者:

public class Invoker
{List<Command> m_Commands = new List<Command>();//加入命令public void AddCommand(Command theCommand){this.m_Commands.Add(theCommand);}//执行命令public void ExecuteCommand(){//执行foreach (var commandItem in m_Commands){commandItem.Execute();}//清空m_Commands.Clear();}
}

5.测试类: 


public class CommandPattern : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Invoker invoker = new Invoker();//将命令与执行结合Command theCommand = null;theCommand = new ConcreteCommad1(new Receiver1(),"Hello");invoker.AddCommand(theCommand);theCommand = new ConcreteCommand2(new Receiver2(),99999);invoker.AddCommand(theCommand);//执行invoker.ExecuteCommand();}
}

游戏中使用场景:

​​1.输入处理​​:将玩家操作(移动、攻击)封装为命令,支持不同设备输入映射。
​​2.技能/技能系统​​:实现技能释放、取消和连招组合。
​​3.撤销/重做系统​​:支持玩家撤销建造操作或技能释放。
4.​​AI指令队列​​:管理AI行为的顺序执行(巡逻→攻击→撤退),将AI节点行为封装为可回放的命令序列。
5.​​网络同步​​:将玩家操作序列化为命令对象进行网络传输。

总结:

在游戏开发中,命令模式特别适合需要灵活控制操作执行流程的场景​​,如技能系统、输入处理和AI指令管理。通过合理优化,可在保证灵活性的同时兼顾性能。

参考书籍:

《Hands-On Game Development Patterns with Unity 2019》

《设计模式与游戏完美开发》

http://www.dtcms.com/wzjs/553639.html

相关文章:

  • 做网站需要什么基础关键词优化公司前十排名
  • 网站开发不用框架门户网站建设中存在的问题
  • 律师论坛网站模板网站建设哪里培训
  • 网站做外链的具体步骤潮州市工程建设网站
  • 网络互动公司排名关键词优化推广
  • 济南手工网站建设公司06628 网页制作与网站开发
  • 关闭网站跳转代码重庆新闻app
  • 深圳南山网站建设有人有片资源吗免费的视频
  • 大同网站开发fifa17做任务网站
  • 蓝色网站导航站长工具seo查询
  • 做馋嘴小栈官方网站互动平台
  • 电子商务网站推广目的分为易语言可以做网站管理系统吗
  • 河南网站开发公司简洁大气企业网站源码
  • 汕头市做网站wordpress英文单词不显示完整
  • 重点培育学科建设网站网站建设源码是什么
  • 做网站怎么办营业执照ppt模板怎么做
  • 怎么上传视频到公司网站最近大事件新闻
  • 百度网站空间织梦网站搬家教程
  • 睢宁建网站做创意美食的视频网站
  • 做最简单的网站行业网站建设运营
  • python网站开发优缺韶关做网站公司
  • 手机怎么自创网站定制小程序网站开发公司
  • 网店代运营店铺推推蛙贴吧优化
  • 畅言wordpress插件网站子页面如何做seo
  • 购物网站开发大专软件技术好就业吗
  • 小型电商网站模板网站设计与制作教程
  • 中国空间站简介100字百度竞价推广代理
  • 有哪些教做蛋糕的网站wordpress cdn国内插件
  • 电子商务网站建设解决方案建设网站采用的网络技术
  • 提高网站流量圣诞网站怎么做