? ,,

新锐科创官网-专业室内外高精度人员定位系统厂家及服务商

聯系我們

給我們留言

聯系我們

地址:福建省晉江市青陽街道洪山路國際工業設計園納金網

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當前位置:主頁 > 3D教程 > 圖文教程

UE4 C++實現Delegate Event實例(例子、example、sample)

來源: 52vr | 責任編輯:傳說的落葉 | 發布時間: 2019-06-11 08:32 | 瀏覽量:

[UE4] C++實現Delegate Event實例(例子、example、sample)

 

雖然官方doc上說Event的Binding方式跟Multi-Cast用法完全一樣,Multi-Cast論壇上也有很多例子,但是實際是不一樣。。而且論壇上找不到相關例子。后來看了下runtime/core的源碼,Event的binging方式如下(附上完整步驟):

 

1,先定義自定義Event,此例中我們定義在GameMode中,名字叫 MyInitEvent。例子中定義的是無參函數,如果需要帶參數,官方doc講的有

 
  1. UCLASS()  
  2. class MYPROJ_API AMyGameMode : public AGameMode  
  3. {  
  4.     GENERATED_BODY()  
  5.       
  6. public:  
  7.   
  8.     AHGameMode();  
  9.   
  10.     //定義Event  
  11.     DECLARE_EVENT(MyUObject, MyInitEvent)  
  12.       
  13.     //用于獲取Event引用的函數,方便在GameMode之外執行binding  
  14.     MyInitEvent& OnInitialize() { return InitEvent; }  
  15.       
  16. private:  
  17.     //Event實例化  
  18.     MyInitEvent InitEvent;  
  19.       
  20.     //Event的binding指針  
  21.     FDelegateHandle DHandle;  
  22. }  

 

2,執行Binding。MyUObject::TestFun是需要被觸發的函數,這里假設是一個普通的無參成員函數:

 
  1. MyUObject* MyObj = NULL;    //這里假設創建MyUObject  
  2. if (MyObj)  
  3. {  
  4.     DHandle = MyGameMode->OnInitialize().AddUObject(MyObj, &MyUObject::TestFun);  
  5. }  

 

注:任何UObject的普通函數都可以被設置為Event的回調函數,但如果函數是UFUNCTION,那么需要將AddUObject替換為AddUFunction

 

3,觸發Event,這里假設在BeginPlay中觸發:

 
  1. void AMyGameMode::BeginPlay()  
  2. {  
  3.     InitEvent.Broadcast();  
  4. }  

 

4,移除Event,比如之前bingding的event不想再觸發了:

 
  1. MyGameMode->OnInitialize().Remove(DHandle);  


相關文章
網友評論

您需要登錄后才可以發帖 登錄 | 立即注冊

關閉

全部評論:0條

推薦
熱門
主站蜘蛛池模板: 久操视频在线免费观看 | 国产真实伦视频在线视频 | 中文字幕色偷偷人妻久久 | 国产h肉在线视频免费观看 国产h视频免费观看 | 欧美性久久| 亚洲欧美精品成人久久91 | 国产精品涩涩涩视频网站 | 色偷偷亚洲男人 | 久久系列| 四虎免费播放观看在线视频 | 日本三区四区免费高清不卡 | 久久婷婷国产综合精品 | 精品国产一区二区三区成人 | 成人欧美视频在线看免费 | 亚洲日韩中文字幕在线播放 | 欧美精品久久久久久久小说 | 久草黄色| 色综合图片 | 好硬好湿好爽再深一点动态图视频 | 国产av无码专区亚洲av蜜芽 | 99热在这里只有免费精品 | 亚洲av无码一区东京热不卡 | 国产精品久久久久久人妻无 | 小泽玛利亚跟黑人3p在线 | 精品久久久久久中文字幕网 | 日本人一级毛片免费视频 | 中文字幕一区二区三区精华液 | 自拍在线播放 | 久久久久亚洲av成人人电影 | 欧美成电影综合网站色www | 亚洲精品无码不卡 | 亚洲精品动漫免费二区 | 亚洲国产精品线路久久 | 国自产拍在线视频天天更新 | 毛片一区二区三区 | 国内精品久久久久精免费 | 国产精品成人观看视频国产奇米 | 亚洲精品在线免费观看视频 | 久久久精品久久久久久久久久久 | 国产一区二区三区丶四区 | 精品熟女少妇av久久免费 |