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

北京建设网站的公司兴田德润简介淘宝上做网站 源代码怎么给你

北京建设网站的公司兴田德润简介,淘宝上做网站 源代码怎么给你,高德是外国公司吗?,图片网站seo一、观察者模式 1.1 观察者模式定义 意图#xff1a; 定义对象间的一种一对多的依赖关系#xff0c;当一个对象的状态发生改变是#xff0c;所有依赖于它的对象都能得到通知并自动更新。 适用性#xff1a; 当一个对象状态的改变需要改变其他对象#xff0c; 或实际对… 一、观察者模式 1.1 观察者模式定义 意图 定义对象间的一种一对多的依赖关系当一个对象的状态发生改变是所有依赖于它的对象都能得到通知并自动更新。 适用性 当一个对象状态的改变需要改变其他对象 或实际对象是事先未知的或动态变化的时 可使用观察者模式。当应用中的一些对象对象观察其他对象时可以使用此模式。订阅列表是动态的因此订阅者可随时会加入或离开此列表。 1.2 观察者模式结构 发布者会向其他对象发送值得关注的事件。 事件会在发布者自身状态改变或执行特定行为后发生。 发布者中包含一个允许新订阅者加入和当前订阅者离开列表的订阅构架。 当新事件发生时 发送者会遍历订阅列表并调用每个订阅者对象的通知方法。 该方法是在订阅者接口中声明的。 订阅者 接口声明了通知接口。 在绝大多数情况下 该接口仅包含一个 update更新方法。 该方法可以拥有多个参数 使发布者能在更新时传递事件的详细信息。 具体订阅者 可以执行一些操作来回应发布者的通知。 所有具体订阅者类都实现了同样的接口 因此发布者不需要与具体类相耦合。 订阅者通常需要一些上下文信息来正确地处理更新。 因此 发布者通常会将一些上下文数据作为通知方法的参数进行传递。 发布者也可将自身作为参数进行传递 使订阅者直接获取所需的数据。 客户端 会分别创建发布者和订阅者对象 然后为订阅者注册发布者更新。 二、实例 实现思路 声明订阅者接口。 该接口声明一个通知方法。声明发布者接口并定义一些接口来在列表中添加和删除订阅对象。创建具体发布者类。 每次发布者发生了重要事件时都必须通知所有的订阅者。在具体订阅者类中实现通知更新的方法。 1.Monster public class Monster : MonoBehaviour {public string sname 怪物x;// Start is called before the first frame updatevoid Start(){Invoke(Dead,1);}void Dead(){Debug.Log(怪物死亡);//GameObject.Find(Player).GetComponentPlayer().MonsterDead(this);//GameObject.Find(Task).GetComponentTask().TaskmonsterDead(this);//GameObject.Find(Other).GetComponentOther().OthermonsterDead(this);EventCenter.GetInstance().EventTrigger(MonsterDead,this);} } 2.Player void Start() { EventCenter.GetInstance().AddEventListener(MonsterDead, MonsterDeadDo); }public void MonsterDeadDo(object info) {Debug.Log(玩家的奖励 (info as Monster).name); }void OnDestory() {EventCenter.GetInstance().RemoveEventListener(MonsterDead, MonsterDeadDo); } 3.EventCenter using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events;/// summary /// 事件中心 单例模式对象 /// 1.dictionary /// 2.委托 /// 3.观察者设计模式 /// /summary public class EventCenter : SingletonEventCenter {//使用泛型委托传递怪物-蝙蝠等 具体敌人类型public 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;//无elseeventDic.Add(name, action);}/// summary/// 执行函数/// /summary/// param namename事件名/param/// param nameinfo传递参数 具体怪物类型/parampublic void EventTrigger(string name,object info){//判断触发中心是否有此 函数if (eventDic.ContainsKey(name)){eventDic[name](info);}}/// summary/// 移除对应事件监听/// /summary/// param namename事件名/param/// param nameaction委托函数/parampublic void RemoveEventListener(string name, UnityActionobject action){//判断事件中心是否有此 函数if (eventDic.ContainsKey(name))eventDic[name] - action;}/// summary/// 清空事件中心主要用于场景切换/// /summarypublic void Clear(){eventDic.Clear();} }
http://www.dnsts.com.cn/news/127114.html

相关文章:

  • 厦门市建设局报表网站免费源码分享平台
  • 网站改版对用户的影响人工智能培训
  • 什么网站可以做饼图外贸公司英文网站建设
  • 潍坊网站建设教程怎么在网上卖产品
  • 中山外贸网站开发价格湖南网站建设开发公司
  • 钱包钱夹移动网站建设drupal joomla wordpress
  • 深圳商城网站设计价格有自建服务器做网站的吗
  • 湛江网站seo长春建网站公司
  • 宁夏建设工程招标投标管理中心网站网络服务商怎么咨询
  • 宁波英文网站建设网站节约化建设
  • 锦溪网站建设辽宁工程造价信息网官网
  • 软件网站排行榜做网站大概要花多少钱
  • 卖房子上哪个网站最好卖可信赖的南昌网站建设
  • 东莞市住房和城乡建设局门户网站专业企业建站公司
  • 团购网站建设怎么样深圳西乡房价多少一平方
  • 做网站用语言搭建平台的另一种说法
  • 性做网站4.1进行网站建设与推广
  • 销量不高的网站怎么做wordpress 资源站模板
  • 2017年做啥网站致富深圳宝安区西乡街道
  • 如何做视频网站流程图宜春公司网站建设
  • 新的房地产网站怎么做SEO网络服务器端口怎么查
  • 网站设计公司山东烟台代刷网站只做软件吗
  • 珠海网站制作外包织梦cms是免费的吗
  • 安徽网络营销推广seo建设网站
  • 广州网站建设网站制作公司营销战略
  • 做视频解析网站犯法吗百度收录查询方法
  • 东莞网站推广企业网站建设 天佑互联
  • 建设部网站 注册违规做网站有意思吗
  • 安溪建设局网站网站权限
  • 龙岩网站建设费用青岛昌隆文具网站是哪家公司做的