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

给企业做网站怎么收钱弹窗广告最多的网站

给企业做网站怎么收钱,弹窗广告最多的网站,一级a做爰网站免费,武汉城乡建设局观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者&#…

观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。

一、事件中心管理类

继承了一个单例模式基类,节省代码

public class EventCenter : BaseManager<EventCenter>
{//key —— 事件的名字(比如:怪物死亡,玩家死亡,通关 等等)//value —— 对应的是 监听这个事件 对应的委托函数们private Dictionary<string, UnityAction<object>> eventDic = new Dictionary<string, UnityAction<object>>();/// <summary>/// 添加事件监听/// </summary>/// <param name="name">事件的名字</param>/// <param name="action">准备用来处理事件 的委托函数</param>public void AddEventListener(string name, UnityAction<object> action){//有没有对应的事件监听//有的情况if( eventDic.ContainsKey(name) ){eventDic[name]+= action;}//没有的情况else{eventDic.Add(name, action);}}/// <summary>/// 过场景,移除对应的事件监听/// </summary>/// <param name="name">事件的名字</param>/// <param name="action">对应之前添加的委托函数</param>public void RemoveEventListener(string name, UnityAction<object> action){if (eventDic.ContainsKey(name))eventDic[name]-= action;}/// <summary>/// 事件触发/// </summary>/// <param name="name"></param>public void EventTrigger(string name,object info){//有没有对应的事件监听//有的情况if (eventDic.ContainsKey(name)){if (eventDic[name]!= null)eventDic[name].Invoke(info);}}/// <summary>/// 清空事件中心/// 主要用在 场景切换时/// </summary>public 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);//怪物死亡//向 怪物死亡 委托添加函数(当怪物死亡时任务计数加1)EventCenter.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.hkea.cn/news/729944/

相关文章:

  • 毕业设计做网站怎么样微信crm管理系统
  • 个人网站开发多少钱电脑培训班零基础
  • 互联网有哪些岗位宁波免费seo在线优化
  • 惠州做棋牌网站建设哪家技术好哪里的网络推广培训好
  • 如何做线上赌博的网站推广策略有哪些方法
  • 男的女的做那个视频网站百度收录需要多久
  • 大通县wap网站建设公司网站免费制作
  • 哪个网站教做公众号甘肃百度推广电话
  • 网站怎么让百度收录广告网络推广
  • 小型网站设计及建设论文定制网站制作公司
  • 视频网站建设费用排名优化网站seo排名
  • 怎么自己做网站服务器linux百度账号查询
  • 梧州网站推广方案百度热搜 百度指数
  • 网站不兼容ie6自助建站模板
  • 甘肃网站建设公司百中搜优化软件
  • 国内外贸网站建设公司seo教程 百度网盘
  • 一物一码二维码生成系统最好用的系统优化软件
  • 如何在大网站做外链镇江网站建站
  • 杭州网站建设公司导航短视频营销案例
  • 昆明做网站建设有哪些长尾关键词排名工具
  • 一女被多男做的视频网站网站seo系统
  • 网站建设 青海网站建设找哪家好
  • win7 网站配置优化方案官网电子版
  • 广州seo优化公司排名浙江seo博客
  • 全网推广的方式有哪些抖音seo推荐算法
  • 网站开发开源架构抖音营销软件
  • 自己做的网站能放到网上么青岛seo经理
  • 营业推广策划方案邵阳网站seo
  • 手机网站横向切换kol合作推广
  • 专门做超市海报的网站宁波seo咨询