国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
绍兴市| 尉氏县| 安陆市| 宜兰县| 石柱| 兴安盟| 嘉鱼县| 宣威市| 杭州市| 大新县| 马关县| 巴南区| 元江| 霍林郭勒市| 额济纳旗| 衡阳县| 麻江县| 噶尔县| 德钦县| 丹巴县| 平罗县| 波密县| 毕节市| 灌阳县| 伊川县| 南宫市| 油尖旺区| 裕民县| 手游| 龙井市| 佛冈县| 新丰县| 铜鼓县| 沂水县| 友谊县| 宜章县| 徐汇区| 鸡西市| 栾川县| 天津市| 安陆市|