最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

六、藍圖訪問C++函數/事件(UFUNCTION)

2022-11-24 23:02 作者:愛玩UE5的小哥哥  | 我要投稿

一.藍圖中的函數/事件

1.函數

①帶有輸入輸出引腳的普通函數

②Pure函數(無輸入輸出引腳)

2.事件

二.C++創(chuàng)建 藍圖可訪問的函數/事件

C++將函數公開給藍圖訪問的方式與公開變量的原理是一樣的,公開變量使用的是UPROPERTY宏,公開函數也需要一個宏,名為UFUNCTION宏.該宏同樣結合大量的說明符來使函數在藍圖中具有不同的功能,特性等?

為了方便測試還是沿用的Cpp_Actor的C++類

①BlueprintCallable(藍圖可調用)?

BlueprintCallable 藍圖可調用,C++函數可以在藍圖中被調用

這是以個有輸入輸出引腳的函數(一個返回值的函數)

多個返回值的函數

②BlueprintPure(藍圖純函數) ,純函數必須有返回值?。。?/span>

這是一個有多個返回值的純函數(沒輸入輸出引腳的)


首先理解藍圖中Beginplayer函數:

在.h文件中進行聲明
在.cpp文件中并未定義,但是卻調用了這個函數

解析:

由上圖可知,藍圖中的Beginplay事件其實就是C++中的ReceiveBeginPlay函數.該函數的UFUNCTION宏中有一個名為BlueprintImplementableEvent的說明符,該說明符字面意思為:"藍圖可實現事件":

即C++中聲明與調用函數(不需要在cpp中定義函數),藍圖中定義函數.下面進行測試



③BlueprintImplementableEvent(藍圖可實現事件)

C++中聲明且調用函數(不定義函數),藍圖中定義函數(Functions中進行override),紅色無流入引腳的形式存在

紅色,我流出引腳


a.函數無形參

.h文件

.cpp文件

b.函數有形參

c.上述ab函數都是無返回值的情況,下面這個是有返回值的情況

.h文件

.cpp文件

有無返回值的區(qū)別:無返回值以事件形式存在,有返回值以函數形式存在

③BlueprintNativeEvent(藍圖原生事件)?

a.C++中聲明函數,C++和藍圖中都可以定義函數(C++必須實現),如果藍圖不定義,會執(zhí)行C++中的定義,如果藍圖和C++都定義,藍圖則會覆蓋C++定義,只執(zhí)行藍圖定義.

(2)C++函數聲明,需要額外聲明一個名為:函數名+_Implementation的返回值和參數列表都一致的函數.

(3)BlueprintNativeEvent需要配合BlueprintCallable一起使用,否則藍圖中不可調用

(4)與BlueprintImplementableEvent 一樣,有返回值的在藍圖以函數形式存在,無返回值的在藍圖中以事件形式存在.?

a.無返回值

.h文件

.cpp文件

(1)藍圖中不定義函數

(2)藍圖中定義函數

備注:解決這個bug是對自己寫的代碼足夠自信,聲明函數沒有返回值,為啥就有返回值了呢?所以確實bug,解決bug

(3)既能實現C++定義的函數,又能實現藍圖定義的函數

b.有返回值

.h文件

.cpp文件

(1)藍圖中不定義函數

(2)藍圖中定義函數

(3)既能實現C++定義的函數,又能實現藍圖定義的函數


六、藍圖訪問C++函數/事件(UFUNCTION)的評論 (共 條)

分享到微博請遵守國家法律
百色市| 通州市| 宜州市| 洞口县| 定结县| 福鼎市| 德江县| 万州区| 青田县| 荆门市| 六枝特区| 什邡市| 微山县| 花垣县| 开远市| 双峰县| 廉江市| 和平县| 梓潼县| 七台河市| 祁东县| 昆明市| 沽源县| 沈丘县| 胶州市| 囊谦县| 嘉义县| 金华市| 上高县| 东安县| 瑞丽市| 富顺县| 泽库县| 乐至县| 新竹市| 叙永县| 保康县| 琼海市| 盐津县| 武乡县| 彰化县|