虚幻C++:接口实现与调用的多种方法
2023-07-13 05:10 作者:雨落素洁_official | 我要投稿
本文会通过完整的接口类声明、实现、调用的过程来介绍虚幻C++调用接口版本的不同。
1. 创建C++接口类
这里我创建了一个名为BulletHitInterface的类。

2. 声明接口函数
BulletHitInterface.h

细节说明:
因为BulletHitInterface所继承的UInterface是一个抽象类, 同时声明的函数BulletHit()也没有在当前类中实现,所以BulletHit()不需要virtual修饰也是一个虚函数。
在UFUNCTION()中添加参数BlueprintNativeEvent,是为了之后在蓝图中实现。
3. 实现该接口函数
3.1 C++版本实现
MerchantCharacter.h

_Implementation 后缀用于实现UFUNCTION(BlueprintNativeEvent)修饰的函数。当蓝图中没有实现该函数时,C++代码中的_Implementation函数将被调用。这与BulletHit函数是否为虚函数无关。
MerchantCharacter.cpp

3.2 蓝图版本实现

4. 调用的不同方式,如何仅调用C++实现?如何仅调用蓝图实现?
4.1 仅调用C++实现
如果同时有C++和蓝图两个版本的实现,可以通过直接调用被实现函数的函数名,来达到仅调用C++的效果。


4.2 仅调用蓝图实现
通过 Execute_函数名 的办法,则可以实现由BlueprintNativeEvent修饰的,仅调用蓝图实现。


以上两者除了在函数名上有差别,在参数上也有差别,需要注意。


4.3那么有没有一种办法同时调用C++和蓝图呢?


感谢阅读。以上便是我在学习过程中的发现和总结,了解这些知识可以增加一种debug思路。
学识尚浅,如有错误,欢迎在评论区指摘。