虛幻C++:接口實現(xiàn)與調(diào)用的多種方法
本文會通過完整的接口類聲明、實現(xiàn)、調(diào)用的過程來介紹虛幻C++調(diào)用接口版本的不同。
1.? 創(chuàng)建C++接口類
這里我創(chuàng)建了一個名為BulletHitInterface的類。

2.? 聲明接口函數(shù)
BulletHitInterface.h

細(xì)節(jié)說明:
因為BulletHitInterface所繼承的UInterface是一個抽象類, 同時聲明的函數(shù)BulletHit()也沒有在當(dāng)前類中實現(xiàn),所以BulletHit()不需要virtual修飾也是一個虛函數(shù)。
在UFUNCTION()中添加參數(shù)BlueprintNativeEvent,是為了之后在藍(lán)圖中實現(xiàn)。
3.? 實現(xiàn)該接口函數(shù)
3.1? C++版本實現(xiàn)
MerchantCharacter.h

_Implementation 后綴用于實現(xiàn)UFUNCTION(BlueprintNativeEvent)修飾的函數(shù)。當(dāng)藍(lán)圖中沒有實現(xiàn)該函數(shù)時,C++代碼中的_Implementation函數(shù)將被調(diào)用。這與BulletHit函數(shù)是否為虛函數(shù)無關(guān)。
MerchantCharacter.cpp

3.2? 藍(lán)圖版本實現(xiàn)

4.? 調(diào)用的不同方式,如何僅調(diào)用C++實現(xiàn)?如何僅調(diào)用藍(lán)圖實現(xiàn)?
4.1? 僅調(diào)用C++實現(xiàn)
如果同時有C++和藍(lán)圖兩個版本的實現(xiàn),可以通過直接調(diào)用被實現(xiàn)函數(shù)的函數(shù)名,來達(dá)到僅調(diào)用C++的效果。


4.2? 僅調(diào)用藍(lán)圖實現(xiàn)
通過 Execute_函數(shù)名 的辦法,則可以實現(xiàn)由BlueprintNativeEvent修飾的,僅調(diào)用藍(lán)圖實現(xiàn)。


以上兩者除了在函數(shù)名上有差別,在參數(shù)上也有差別,需要注意。


4.3那么有沒有一種辦法同時調(diào)用C++和藍(lán)圖呢?


感謝閱讀。以上便是我在學(xué)習(xí)過程中的發(fā)現(xiàn)和總結(jié),了解這些知識可以增加一種debug思路。
學(xué)識尚淺,如有錯誤,歡迎在評論區(qū)指摘。