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

整站优化案例迁西个人网页设计制作软件

整站优化案例,迁西个人网页设计制作软件,推广做网站莱芜,广西建设教育协会网站观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系#xff0c;当一个对象的状态发生改变时#xff0c;所有依赖于它的对象都得到通知并被自动更新。在观察者模式中#xff0c;主体是通知的发布者#xff0c;它发出通知时并不需要知道谁是它的观察者#…观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。在观察者模式中主体是通知的发布者它发出通知时并不需要知道谁是它的观察者可以有任意数目的观察者订阅并接收通知。 一、事件中心管理类 继承了一个单例模式基类节省代码 public class EventCenter : BaseManagerEventCenter {//key —— 事件的名字比如怪物死亡玩家死亡通关 等等//value —— 对应的是 监听这个事件 对应的委托函数们private Dictionarystring, UnityActionobject eventDic new Dictionarystring, UnityActionobject();/// summary/// 添加事件监听/// /summary/// param namename事件的名字/param/// param nameaction准备用来处理事件 的委托函数/parampublic void AddEventListener(string name, UnityActionobject action){//有没有对应的事件监听//有的情况if( eventDic.ContainsKey(name) ){eventDic[name] action;}//没有的情况else{eventDic.Add(name, action);}}/// summary/// 过场景移除对应的事件监听/// /summary/// param namename事件的名字/param/// param nameaction对应之前添加的委托函数/parampublic void RemoveEventListener(string name, UnityActionobject action){if (eventDic.ContainsKey(name))eventDic[name]- action;}/// summary/// 事件触发/// /summary/// param namename/parampublic void EventTrigger(string name,object info){//有没有对应的事件监听//有的情况if (eventDic.ContainsKey(name)){if (eventDic[name]! null)eventDic[name].Invoke(info);}}/// summary/// 清空事件中心/// 主要用在 场景切换时/// /summarypublic void Clear(){eventDic.Clear();} } 二、模拟一个功能 玩家要完成一个任务“杀死三只哥布林”玩家点击鼠标左键杀死一只怪物如果这个怪物是哥布林那么任务计数加1达到3后提示任务完成。 其中还会显示玩家击杀了什么怪物击杀后获得多少金钱 玩家类 public class Player : MonoBehaviour {public string name Holens;// Start is called before the first frame updatevoid Start(){EventCenter.GetInstance().AddEventListener(MonsterDead, GetMoney);}// Update is called once per framevoid Update(){//按下左键杀死哥布林if (Input.GetMouseButtonDown(0)){KillMonster();}}public void KillMonster(){//杀死哥布林//向事件中心发送请求 执行杀死哥布林逻辑EventCenter.GetInstance().EventTrigger(KillMonster, this);}public void GetMoney(object info){print(this.name杀死了 (info as Monster).name 获得 (info as Monster).money金钱);} } 怪物类 public class Monster : MonoBehaviour {public string name;public int money 100;// Start is called before the first frame updatevoid Start(){//向 击杀哥布林 委托添加死亡函数EventCenter.GetInstance().AddEventListener(KillMonster, Dead);}public void Dead(object info){print((info as Player).name杀死了this.name);//死亡时向事件中心发送请求 执行怪物死亡逻辑EventCenter.GetInstance().EventTrigger(MonsterDead, this);} } 任务类 public class Task : MonoBehaviour {public int nowNum;public int maxNum 3;public string messionInfo 杀死三只哥布林;public bool isFinish false;// Start is called before the first frame updatevoid Start(){print(任务目标是 messionInfo);//怪物死亡//向 怪物死亡 委托添加函数当怪物死亡时任务计数加1EventCenter.GetInstance().AddEventListener(MonsterDead, UpdateNum);}// Update is called once per framevoid Update(){if (nowNum maxNum!isFinish){//计数达到目标任务完成FinishMession();isFinish true;}}public void UpdateNum(object info){//如果杀死的目标是哥布林则计数增加if ((info as Monster).name哥布林){nowNum;}}public void FinishMession(){print(任务完成);} } 三、运行过程及结果 创建三个物体并挂载相应代码 怪物名字设置成1 此时按下鼠标左键五次可以看到触发了提示但是因为杀的不是哥布林所以任务没有完成 将名字改为哥布林点击三次后提示完成任务
http://www.w-s-a.com/news/902322/

相关文章:

  • 深圳电商网站开发公司page list wordpress
  • 长安外贸网站建设顺德区网站设计建设企业
  • 临沂市建设局网站简介专业建设网站开发
  • 肇庆网站制作设计中国企业500强招聘
  • 苏州厂房装修宁波seo网络推广外包报价
  • 文山知名网站建设惠州哪家做网站好
  • 物流网站风格网站登录密码保存在哪里设置
  • 免费网站怎么建立icodepython基础教程
  • 无障碍网站建设方案wordpress 任务管理系统
  • iis5.1发布网站中小企业网络营销存在的问题研究论文
  • 阳泉软件定制网站建设网站可以做多语言的吗
  • 建设网站的目的及功能定位主要包括哪些内容百度关键词优化
  • 开一个小程序要多少钱宁波seo网络推广外包报价
  • 网站备案最新备案号电子商务网站建设的规章制度
  • wordpress制作单页网站导航页面鞍山信息港招聘信息
  • 屏蔽ip地址访问网站自己做衣服的网站
  • 网站建设 域名业务 邮箱哪里有网站建设中心
  • 免费网站赚钱重庆建设摩托车股份有限公司
  • 合肥水运建设工程监理网站自己买服务器能在wordpress建网站
  • wordpress积分商城主题整站seo排名要多少钱
  • 鲜花网站建设的利息分析网站设计与制作专业
  • 深圳网站建设排名做网站的公司高创
  • 杭州哪家做外贸网站全国物流网站有哪些平台
  • 企业网站建设个人博客鞍山晟宇网站建设
  • 广东省自然资源厅网站h5移动端网站模板下载
  • 网站建设和安全管理制度云南九泰建设工程有限公司官方网站
  • 网站的关键词和描述做外贸家纺资料网站
  • 绥化市建设工程网站招投标地址链接怎么生成
  • 网站制作设计发展前景网页链接制作生成二维码
  • 廊坊哪里有制作手机网站的企业网站建设费用财务处理