中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

金華大企業(yè)網(wǎng)站建設(shè)有哪些小說排行榜百度搜索風(fēng)云榜

金華大企業(yè)網(wǎng)站建設(shè)有哪些,小說排行榜百度搜索風(fēng)云榜,wordpress加文章頂部全局廣告圖片,網(wǎng)站建設(shè)與網(wǎng)站設(shè)計哪個好學(xué)觀察者模式是一種對象行為模式。它定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。在觀察者模式中,主體是通知的發(fā)布者,它發(fā)出通知時并不需要知道誰是它的觀察者&#…

觀察者模式是一種對象行為模式。它定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。在觀察者模式中,主體是通知的發(fā)布者,它發(fā)出通知時并不需要知道誰是它的觀察者,可以有任意數(shù)目的觀察者訂閱并接收通知。

一、事件中心管理類

繼承了一個單例模式基類,節(jié)省代碼

public class EventCenter : BaseManager<EventCenter>
{//key —— 事件的名字(比如:怪物死亡,玩家死亡,通關(guān) 等等)//value —— 對應(yīng)的是 監(jiān)聽這個事件 對應(yīng)的委托函數(shù)們private Dictionary<string, UnityAction<object>> eventDic = new Dictionary<string, UnityAction<object>>();/// <summary>/// 添加事件監(jiān)聽/// </summary>/// <param name="name">事件的名字</param>/// <param name="action">準(zhǔn)備用來處理事件 的委托函數(shù)</param>public void AddEventListener(string name, UnityAction<object> action){//有沒有對應(yīng)的事件監(jiān)聽//有的情況if( eventDic.ContainsKey(name) ){eventDic[name]+= action;}//沒有的情況else{eventDic.Add(name, action);}}/// <summary>/// 過場景,移除對應(yīng)的事件監(jiān)聽/// </summary>/// <param name="name">事件的名字</param>/// <param name="action">對應(yīng)之前添加的委托函數(shù)</param>public void RemoveEventListener(string name, UnityAction<object> action){if (eventDic.ContainsKey(name))eventDic[name]-= action;}/// <summary>/// 事件觸發(fā)/// </summary>/// <param name="name"></param>public void EventTrigger(string name,object info){//有沒有對應(yīng)的事件監(jiān)聽//有的情況if (eventDic.ContainsKey(name)){if (eventDic[name]!= null)eventDic[name].Invoke(info);}}/// <summary>/// 清空事件中心/// 主要用在 場景切換時/// </summary>public void Clear(){eventDic.Clear();}
}

二、模擬一個功能

玩家要完成一個任務(wù)“殺死三只哥布林”,玩家點擊鼠標(biāo)左鍵殺死一只怪物,如果這個怪物是哥布林,那么任務(wù)計數(shù)加1,達到3后提示任務(wù)完成。

其中還會顯示玩家擊殺了什么怪物,擊殺后獲得多少金錢

玩家類

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(){//殺死哥布林//向事件中心發(fā)送請求 執(zhí)行殺死哥布林邏輯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(){//向 擊殺哥布林 委托添加死亡函數(shù)EventCenter.GetInstance().AddEventListener("KillMonster", Dead);}public void Dead(object info){print((info as Player).name+"殺死了"+this.name);//死亡時向事件中心發(fā)送請求 執(zhí)行怪物死亡邏輯EventCenter.GetInstance().EventTrigger("MonsterDead", this);}
}

任務(wù)類

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("任務(wù)目標(biāo)是" + messionInfo);//怪物死亡//向 怪物死亡 委托添加函數(shù)(當(dāng)怪物死亡時任務(wù)計數(shù)加1)EventCenter.GetInstance().AddEventListener("MonsterDead", UpdateNum);}// Update is called once per framevoid Update(){if (nowNum == maxNum&&!isFinish){//計數(shù)達到目標(biāo),任務(wù)完成FinishMession();isFinish = true;}}public void UpdateNum(object info){//如果殺死的目標(biāo)是哥布林,則計數(shù)增加if ((info as Monster).name=="哥布林"){nowNum++;}}public void FinishMession(){print("任務(wù)完成");}
}

三、運行過程及結(jié)果

創(chuàng)建三個物體并掛載相應(yīng)代碼

怪物名字設(shè)置成1

此時按下鼠標(biāo)左鍵五次,可以看到觸發(fā)了提示但是因為殺的不是哥布林,所以任務(wù)沒有完成

?將名字改為哥布林,點擊三次后提示完成任務(wù)

http://m.risenshineclean.com/news/60899.html

相關(guān)文章:

  • wordpress主題修改ftp寧波seo網(wǎng)絡(luò)推廣
  • 謝崗鎮(zhèn)仿做網(wǎng)站網(wǎng)站排名優(yōu)化外包
  • 用動物做logo的旅游網(wǎng)站武漢網(wǎng)站推廣排名
  • 日照手機網(wǎng)站建設(shè)能翻到國外的瀏覽器
  • 石家莊市和城鄉(xiāng)建設(shè)局網(wǎng)站快手seo
  • 做北美市場用哪個網(wǎng)站成都網(wǎng)站排名 生客seo
  • 網(wǎng)站設(shè)計基本要求網(wǎng)絡(luò)營銷渠道策略研究
  • 網(wǎng)站做seo真的能帶來客戶嗎百度網(wǎng)盤官網(wǎng)下載
  • 網(wǎng)站域名后綴代表什么成都網(wǎng)站優(yōu)化排名
  • 網(wǎng)站信息可以邊建設(shè)邊組織正規(guī)優(yōu)化公司哪家好
  • 交錢做網(wǎng)站對方拿了錢不做該怎么辦網(wǎng)站維護工程師
  • 表格制作手機軟件seo關(guān)鍵詞推廣公司
  • 南寧大型網(wǎng)站推廣公司企業(yè)網(wǎng)站制作方案
  • 網(wǎng)站建設(shè)維護培訓(xùn)佛山seo外包平臺
  • 期末網(wǎng)站設(shè)計做什么網(wǎng)站比較好太原百度推廣開戶
  • 倉庫進銷存管理軟件免費版搜索引擎優(yōu)化分析
  • 做英文網(wǎng)站哪家好十堰seo優(yōu)化方法
  • 大學(xué)生兼職網(wǎng)網(wǎng)站建設(shè)計劃書海外黃岡網(wǎng)站推廣
  • 制作網(wǎng)站怎么做的網(wǎng)站優(yōu)化技巧
  • 西安制作網(wǎng)站的公司有福州seo排名優(yōu)化公司
  • 品牌型網(wǎng)站制作龍崗百度快速排名
  • 公司網(wǎng)站建設(shè)中心杭州網(wǎng)站優(yōu)化公司哪家好
  • 學(xué)校網(wǎng)站建設(shè)先進事跡百度站長平臺提交網(wǎng)站
  • 網(wǎng)站聯(lián)系我們怎么做口碑營銷的作用
  • 采購網(wǎng)站平臺全國疫情今天最新消息
  • 祁東網(wǎng)站設(shè)計公司網(wǎng)站統(tǒng)計工具有哪些
  • 湖南湘潭網(wǎng)站建設(shè)第一推廣網(wǎng)
  • 一個做智能化的網(wǎng)站有哪些潮州網(wǎng)站建設(shè)
  • 網(wǎng)站怎么做二級域名網(wǎng)站友情鏈接的作用
  • 網(wǎng)站建設(shè)與開發(fā)的收獲與體會信息流優(yōu)化