欢迎光临散文网 会员登陆 & 注册

虚幻C++:接口实现与调用的多种方法

2023-07-13 05:10 作者:雨落素洁_official  | 我要投稿

本文会通过完整的接口类声明、实现、调用的过程来介绍虚幻C++调用接口版本的不同。

1.  创建C++接口类

这里我创建了一个名为BulletHitInterface的类。

继承Interface


2.  声明接口函数

BulletHitInterface.h

BulletHitInterface.h

细节说明:

因为BulletHitInterface所继承的UInterface是一个抽象类, 同时声明的函数BulletHit()也没有在当前类中实现,所以BulletHit()不需要virtual修饰也是一个虚函数

UFUNCTION()中添加参数BlueprintNativeEvent,是为了之后在蓝图中实现。

3.  实现该接口函数

3.1  C++版本实现

MerchantCharacter.h

MerchantCharacter.h

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

MerchantCharacter.cpp

MerchantCharacter.cpp

3.2  蓝图版本实现

蓝图

4.  调用的不同方式,如何仅调用C++实现?如何仅调用蓝图实现?

4.1  仅调用C++实现

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

调用代码
输出日志

4.2  仅调用蓝图实现

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


调用代码
输出日志

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

仅C++
仅蓝图

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

简单,调用父类
输出日志


感谢阅读。以上便是我在学习过程中的发现和总结,了解这些知识可以增加一种debug思路。

学识尚浅,如有错误,欢迎在评论区指摘。


虚幻C++:接口实现与调用的多种方法的评论 (共 条)

分享到微博请遵守国家法律