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

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【UE4】【UnLua】從UnLua的接口和Cast的使用談?wù)凩ua如何訪問UE中的類(包括藍(lán)圖)

2021-12-09 18:18 作者:天空游蕩的魚  | 我要投稿

????????最近有人提了一個(gè)問題,在UnLua官方代碼的Demo中,為什么OtherActor:Cast(UE4.ABP_PlayerCharacter_C)傳入的參數(shù)是動(dòng)畫藍(lán)圖對(duì)應(yīng)的類名?

我只能說,這只是一個(gè)巧合,這里傳入的確確實(shí)實(shí)是角色藍(lán)圖的類名。要弄懂該問題。我們先看看接口的使用和Cast的使用代碼。

? ??

UnLua中接口和Cast的使用

????????UE4.UBPI_Interfaces_C.NotifyEnemyDied(GameMode)這行代碼中,BPI_Interfaces_C是定義的藍(lán)圖接口,怎么直接調(diào)用了接口的方法,

最終到底調(diào)用的哪個(gè)對(duì)象的方法?

這里涉及到幾個(gè)知識(shí)點(diǎn):

1. UE4.UBPI_Interfaces_C涉及到lua中元方法Index

2. UE4.UBPI_Interfaces_C涉及到UnLua插件中是如何注冊(cè)和獲取UClass的

3. lua中冒號(hào)(:),點(diǎn)號(hào)(.)訪問的區(qū)別

弄懂了這幾點(diǎn),我們就可以明白,為什么藍(lán)圖接口明明定義的是BPI_Interfaces,訪問的時(shí)候卻變成UBPI_Interfaces_C,_C我們都知道,UClass在加載時(shí)需要加_C。

全局變量UE4的元方法注冊(cè)
Index元方法實(shí)現(xiàn)
加載對(duì)應(yīng)的UClass

?????從代碼中可以看到,全局變量UE4的Index元方法是UE4_Index,UE4.UBPI_Interfaces_C就會(huì)調(diào)用到此元方法。

Name=UBPI_Interfaces_C,所以會(huì)調(diào)用RegisterClass方法,進(jìn)而調(diào)用FReflectionRegistry::RegisterClass。該方法中如果第一個(gè)字母為特定字母則去掉第一個(gè)字母

并調(diào)用UE的FindObject或者LoadObject,到了UE加載類的流程中(這里不詳加描述)。

????????關(guān)于接口調(diào)用部分,已經(jīng)通過UE4.UBPI_Interfaces_C訪問到的是類的信息了。相當(dāng)于是知道了C++中Class的方法簽名,那怎么調(diào)用呢?當(dāng)然是直接將this傳進(jìn)去了。

所以第一個(gè)參數(shù)其實(shí)是this,相當(dāng)于C++中調(diào)用ClassA::FunctionA(this, 后面是方法的參數(shù)列表)。

Lua中的點(diǎn)號(hào)(.)調(diào)用函數(shù),不會(huì)傳入self作為默認(rèn)參數(shù)。上面的代碼

其實(shí)可以改為GameMode:NotifyEnemyDied()。


????現(xiàn)在來看看面的問題,Cast(UE4.ABP_PlayerCharacter_C)參數(shù)指的是動(dòng)畫藍(lán)圖嗎?如果要檢查動(dòng)畫藍(lán)圖,我們又該提供什么參數(shù)呢。留待大家去討論吧!


【UE4】【UnLua】從UnLua的接口和Cast的使用談?wù)凩ua如何訪問UE中的類(包括藍(lán)圖)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
龙泉市| 尼勒克县| 綦江县| 华阴市| 象州县| 高要市| 乃东县| 海南省| 凤凰县| 中西区| 丹江口市| 昌黎县| 舞阳县| 新津县| 盖州市| 大理市| 嘉祥县| 和顺县| 新邵县| 新兴县| 汉源县| 巫溪县| 尚志市| 进贤县| 满洲里市| 庆城县| 邮箱| 松溪县| 曲麻莱县| 金门县| 罗城| 龙江县| 固镇县| 清丰县| 永顺县| 连州市| 大兴区| 绥芬河市| 峨眉山市| 嘉鱼县| 马公市|