Unity輕便響應(yīng)式事件框架UniEvent

https://github.com/m969/uniFrame
基于UniRx的一個輕便的事件框架情连,提取自uFrame框架蛔外。

uFrame是一個專門為大型游戲項目設(shè)計的基于MVVM模式的代碼框架冀值,非常強大姆怪,但如果用于小游戲項目就會顯得比較臃腫嘿辟,沒有必要舆瘪,但我又想要用uFrame那一套便利的事件機制,因此我就把它提取出來形成了這個UniEvent红伦。

使用方式:
在使用之前需要先引入UniRx命名空間英古。

訂閱事件:

this.OnEvent<TEvent>().Subscribe(x => { });

發(fā)布事件:

this.Pubish(new TEvent());

示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UniRx;

public enum HeroEventType
{
    None,
    Spawn,
    Dead
}

public class HeroEvent
{
    public HeroEventType type;
    public string eventType;
    public string testStr;
}

public enum HeroCmdType
{
    None,
    Attack,
    BeAttacked
}

public class HeroCommand : ICommand<GameObject>
{
    public HeroCmdType type;
    public GameObject Result { get;set; }
}

public class UniEventTest : MonoBehaviour {
    //可訂閱屬性
    public ReactiveProperty<int> p = new ReactiveProperty<int>();


    void Start () {
        //訂閱屬性
        p.Subscribe(x => { print("p=" + x); });
        //訂閱Hero事件
        this.OnEvent<HeroEvent>().Subscribe(OnHeroEvent);
        //篩選Hero出生事件
        this.OnEvent<HeroEvent>().Where(e => e.type == HeroEventType.Spawn).Subscribe(OnHeroSpawn);
        //篩選Hero死亡事件
        this.OnEvent<HeroEvent>().Where(e => e.type == HeroEventType.Dead).Subscribe(OnHeroDead);
        //訂閱Hero命令
        this.OnEvent<HeroCommand>().Subscribe(OnHeroCommand);

        //改變屬性
        p.Value = 1;
        //發(fā)布Hero事件
        this.Publish(new HeroEvent());
        //發(fā)布Hero出生事件
        this.Publish(new HeroEvent() { type = HeroEventType.Spawn });
        //發(fā)布Hero死亡事件
        this.Publish(new HeroEvent() { type = HeroEventType.Dead });
        //發(fā)布Hero命令并攜帶返回值
        var result = this.Execute<HeroCommand, GameObject>(new HeroCommand() { type = HeroCmdType.Attack });
        print(result);
    }

    private void OnHeroEvent(HeroEvent evt)
    {
        print("OnHeroEvent");
    }

    private void OnHeroSpawn(HeroEvent evt)
    {
        print("OnHeroSpawn");
    }

    private void OnHeroDead(HeroEvent evt)
    {
        print("OnHeroDead");
    }

    private void OnHeroCommand(HeroCommand evt)
    {
        print("OnHeroCommand " + evt.type);
        evt.Result = new GameObject(evt.type + "Result");
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市昙读,隨后出現(xiàn)的幾起案子召调,更是在濱河造成了極大的恐慌,老刑警劉巖蛮浑,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唠叛,死亡現(xiàn)場離奇詭異,居然都是意外死亡沮稚,警方通過查閱死者的電腦和手機艺沼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蕴掏,“玉大人障般,你說我怎么就攤上這事∈⒔埽” “怎么了挽荡?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長即供。 經(jīng)常有香客問我定拟,道長,這世上最難降的妖魔是什么逗嫡? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任青自,我火速辦了婚禮,結(jié)果婚禮上驱证,老公的妹妹穿的比我還像新娘延窜。我一直安慰自己,他們只是感情好雷滚,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布需曾。 她就那樣靜靜地躺著吗坚,像睡著了一般祈远。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上商源,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天车份,我揣著相機與錄音,去河邊找鬼牡彻。 笑死扫沼,一個胖子當著我的面吹牛出爹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缎除,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼严就,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了器罐?” 一聲冷哼從身側(cè)響起梢为,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轰坊,沒想到半個月后铸董,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡肴沫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年粟害,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颤芬。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡悲幅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驻襟,到底是詐尸還是另有隱情夺艰,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布沉衣,位于F島的核電站郁副,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏豌习。R本人自食惡果不足惜飞主,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一啡专、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦烹棉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吸占,卻和暖如春晴叨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矾屯。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工兼蕊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人件蚕。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓孙技,卻偏偏與公主長得像产禾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牵啦,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容