五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

六、藍圖訪問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)的評論 (共 條)

分享到微博請遵守國家法律
广西| 红安县| 尤溪县| 民权县| 姜堰市| 铁力市| 凌云县| 南安市| 富民县| 菏泽市| 宁武县| 甘德县| 兴文县| 高青县| 原平市| 会泽县| 息烽县| 和林格尔县| 云梦县| 天长市| 东明县| 常州市| 乌拉特中旗| 攀枝花市| 邵武市| 大厂| 易门县| 宁城县| 大荔县| 黄骅市| 黔江区| 兴宁市| 安义县| 简阳市| 望江县| 平山县| 称多县| 明光市| 罗田县| 鞍山市| 丰台区|