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

营销型网站建设要求网站打不开了什么原因

营销型网站建设要求,网站打不开了什么原因,兰州业之峰装饰公司,郑州网站建设哪家公司好Unity实现设计模式——命令模式 推荐一个Unity学习设计模式很好的GitHub地址#xff1a;https://github.com/QianMo/Unity-Design-Pattern 有非常多的Star 一、介绍 命令模式使得请求的发送者与请求的执行者之间消除耦合#xff0c;让对象之间的调用关系更加灵活。在命令模…Unity实现设计模式——命令模式 推荐一个Unity学习设计模式很好的GitHub地址https://github.com/QianMo/Unity-Design-Pattern 有非常多的Star 一、介绍 命令模式使得请求的发送者与请求的执行者之间消除耦合让对象之间的调用关系更加灵活。在命令模式中会将一个命令封装成一个对象同时命令模式也支持可撤销的操作。 命令里面通常聚合接收者初始化命令时传入接收者调用者直接调用命令即可 二、实现 这里使用Unity上下左右控制物体移动同时记录移动信息方便撤回为例子演示命令模式 1.ICommand 命令接口基类 public interface ICommand {void Execute();void UnExecute(); }2.MoveCommand 具体的移动命令 class MoveCommand : ICommand {private MoveDirection _direction;private MoveCommandReceiver _receiver;private float _distance;private GameObject _gameObject;//Constructorpublic MoveCommand(MoveCommandReceiver reciever, MoveDirection direction, float distance,GameObject gameObjectToMove){this._receiver reciever;this._direction direction;this._distance distance;this._gameObject gameObjectToMove;}//Execute new commandpublic void Execute(){_receiver.MoveOperation(_gameObject, _direction, _distance);}//Undo last commandpublic void UnExecute(){_receiver.MoveOperation(_gameObject, InverseDirection(_direction), _distance);}//invert the direction for undoprivate MoveDirection InverseDirection(MoveDirection direction){switch (direction){case MoveDirection.up:return MoveDirection.down;case MoveDirection.down:return MoveDirection.up;case MoveDirection.left:return MoveDirection.right;case MoveDirection.right:return MoveDirection.left;default:Debug.LogError(Unknown MoveDirection);return MoveDirection.up;}}//So we can show this command in debug output easilypublic override string ToString(){return _gameObject.name : MoveDirectionString(_direction) : _distance.ToString();}//Convert the MoveDirection enum to a string for debugpublic string MoveDirectionString(MoveDirection direction){switch (direction){case MoveDirection.up:return up;case MoveDirection.down:return down;case MoveDirection.left:return left;case MoveDirection.right:return right;default:return unkown;}} }3.MoveCommandReceiver 命令接收者 class MoveCommandReceiver{public void MoveOperation(GameObject gameObjectToMove, MoveDirection direction, float distance){switch (direction){case MoveDirection.up:MoveY(gameObjectToMove, distance);break;case MoveDirection.down:MoveY(gameObjectToMove, -distance);break;case MoveDirection.left:MoveX(gameObjectToMove, -distance);break;case MoveDirection.right:MoveX(gameObjectToMove, distance);break;}}private void MoveY(GameObject gameObjectToMove, float distance){Vector3 newPos gameObjectToMove.transform.position;newPos.y distance;gameObjectToMove.transform.position newPos;}private void MoveX(GameObject gameObjectToMove, float distance){Vector3 newPos gameObjectToMove.transform.position;newPos.x distance;gameObjectToMove.transform.position newPos;}}4.命令的发出者或者说是图中Clinet 这里将命令发出者和Client放到了一起 public class InputHandler : MonoBehaviour {public float moveDistance 10f;public GameObject objectToMove;private MoveCommandReceiver moveCommandReciever;private StackMoveCommand commandStack1 new StackMoveCommand();private StackMoveCommand commandStack2 new StackMoveCommand();void Start(){moveCommandReciever new MoveCommandReceiver();if (objectToMove null){Debug.LogError(objectToMove must be assigned via inspector);this.enabled false;}}public void Undo(){if (commandStack1.Count 0){MoveCommand moveCommand commandStack1.Pop();moveCommand.UnExecute();commandStack2.Push(moveCommand);}}public void Redo(){if (commandStack2.Count 0){MoveCommand moveCommand commandStack2.Pop();moveCommand.Execute();commandStack1.Push(moveCommand);}}private void Move(MoveDirection direction){MoveCommand moveCommand new MoveCommand(moveCommandReciever, direction, moveDistance, objectToMove);moveCommand.Execute();commandStack1.Push(moveCommand);}//Simple move commands to attach to UI buttonspublic void MoveUp() { Move(MoveDirection.up); }public void MoveDown() { Move(MoveDirection.down); }public void MoveLeft() { Move(MoveDirection.left); }public void MoveRight() { Move(MoveDirection.right); }void Update(){if (Input.GetKeyDown(KeyCode.UpArrow)){MoveUp();}if (Input.GetKeyDown(KeyCode.DownArrow)){MoveDown();}if (Input.GetKeyDown(KeyCode.LeftArrow)){MoveLeft();}if (Input.GetKeyDown(KeyCode.RightArrow)){MoveRight();}if (Input.GetKeyDown(KeyCode.R)){Redo();}if (Input.GetKeyDown(KeyCode.U)){Undo();}} }
http://www.w-s-a.com/news/287601/

相关文章:

  • 甘肃网站建设制作商网站空间哪家公司的好
  • 思途旅游网站建设系统用vscode做网站
  • 广州站改造最新消息半年工作总结ppt模板
  • logo模板下载网站推荐哪家网站开发培训好
  • 做外贸网站效果图页面关键词优化
  • 广平网站建设成都活动轨迹
  • 小型网站网站建设需要网络公司是什么行业
  • 滑动 手机网站 代码网页制作与设计讨论
  • 自己做网站处理图片用什么软件wordpress html5支持
  • 校园网站怎么建软文文案范文
  • 中国建设官方网站如何创建自己的软件
  • 来宾住房与城乡建设网站天津西青区怎么样
  • 西安网站建设培训班鄂州网页定制
  • 西部数码网站备份自己怎么做网站啊
  • h5网站开发用什么软件制作公司网站建设代理怎么做
  • 网站建设资料准备网上购物app有哪些
  • 沧州做网站优化哪家公司便宜国内百度云网站建设
  • 网站的最近浏览 怎么做龙岩市人才网最新招聘信息
  • 网站建设需要找工信部吗网站开发账务处理
  • 做那种的视频网站个体工商网站备案
  • 推广网官方推广网站中国建设招聘信息网站
  • 医院网站建设需要多少钱网络营销渠道可分为哪几种
  • 怎么取网页视频网站元素计算机专业论文网站开发
  • 上海网站建设备案号怎么恢复wordpress打开页面空白
  • 30个做设计的网站企业设计网站
  • 招生网站开发的背景创意 wordpress
  • 网站备案资料查询小型企业管理系统软件
  • 温州网站建设维护怎么做好网站开发、设计
  • 佛山 做网站公司有哪些网站排名忽然不见了
  • 广告网站建设最专业东莞大朗网站设计