Unreal中Interface接口的使用

news/2024/7/7 23:09:26

通过继承Unreal中的接口可以使不同的类有某种共同特性,这里记录一下接口的使用方式。Unreal中的接口分为两种:C++接口和蓝图接口,C++接口可在蓝图中使用;蓝图中的接口不能直接在C++中使用,这里探究一下他们的关系:

1.C++的接口在C++中使用:

新建C++类,继承UnrealInterface:

接口中可以声明虚函数或者纯虚函数:

赋值为0即为纯虚函数,子类必须实现纯虚函数:

非纯虚函数可以在父类中实现,子类自由选择是否重写:

调用:

2.蓝图中使用蓝图接口:

新建蓝图接口,继承BlueprintInterface:

声明接口函数TestInterface:

在蓝图Actor中添加蓝图接口TestBlueprintInterface:

actor蓝图自动从接口中生成事件,可以在此事件中编写要执行的逻辑:

3.在蓝图中使用C++接口,需要给接口函数添加BlueprintImplementableEvent或者BlueprintNativeEvent和BlueprintCallable标记:

当C++Actor继承此接口,然后蓝图Actor继承C++Actor时,接口位于继承接口面板中:

此时可以选择是否重写父类中的BlueprintNativeEvent。

当蓝图actor直接实现C++接口时,接口位于ImplementedInterface面板中,并需要重写接口函数:

注意,蓝图类通过上面这种方式的接口实现,无法在C++中直接调用,只能判断当前类是否实现了此接口,而不能转换接口类型成功:

纯蓝图类实现的接口在C++中只能通过GetClass()->ImplementsInterface(U接口类:StaticClass)查询,而不能转换接口类型成功,也就是上面红框内不会执行;而C++或继承C++类实现接口的类如CustomActor可以转换成功。注意,C++调用给蓝图用的函数,要通过Excute_函数名调用。


http://lihuaxi.xjx100.cn/news/663676.html

相关文章

rocketmq-批量发送消息

参考: https://blog.csdn.net/u010277958/article/details/88647281 https://blog.csdn.net/u010634288/article/details/56049305 https://blog.csdn.net/u014004279/article/details/99644995RocketMQ-批量发送消息 批量发送消息可提高传递小消息的性能。同时也需要满足以下…

大数据生产环境 sqoop datax

在日常大数据生产环境中,经常会有集群数据集和关系型数据库互相转换的需求,在需求选择的初期解决问题的方法————数据同步工具就应运而生了。此次我们选择两款生产环境常用的数据同步工具进行讨论 Sqoop 通常数据开发岗位的朋友都会较早的接触这款工具,因为Sqoop的设计初…

2023.1.16 (一) 上午 关于人口老龄化的研究——老龄化的式子表示及建国以来的老龄化情况

2023.1.16(一)上午 关于人口老龄化的研究——老龄化的式子表示及建国以来的老龄化情况前言定义建模模型细节代码实现.in文件.out文件前言 今天研究一个简单一点的问题,预计2023.1.18正式结题做PPT展示。 定义 老龄人: 60岁≤ 的人 老龄化&…

JavaScript 变量提升和函数提升

文章目录JavaScript 变量提升和函数提升作用域变量提升函数提升变量提升和函数提升的优先级JavaScript 变量提升和函数提升 作用域 在JavaScript中,一个变量的定义与调用都是会在一个固定的范围中的,这个范围我们称之为作用域。 作用域可以分为&#…

WhatsApp居然有3个版本?深度详解区别!外贸圈获客神器用起来!

近两年,外贸圈用WhatsApp来营销获客,越来越火。不少走在前头的外贸人,已经尝到了甜头。但也有不少后来者,站在门外张望的时候,整个人都是蒙圈的。❓听说动不动要整几十个账号,还要花老长时间养号&#xff1…

《Linux Shell脚本攻略》学习笔记-第三章

3.1 简介 Unix为所有的设备和系统功能提供了文件形式的借口。可以通过这些特殊文件直接访问设备以及系统功能。 3.2 生成任意大小的文件 创建特定大小的文件最简单的方法就是利用dd命令。dd命令会克隆给定的输出内容,然后将一模一样的一份副本写入输出。 if表示输入…

【代码随想录】哈希表-golang

哈希表 from 代码随想录 hash表解法可以是slice,map…,目的是将时间复杂度降为O(1) 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 排序 思路:直接重新声明字符的字节形式,然后对其进行…

冒泡排序算法的实现和优化~

冒泡排序算法: 算法思想: 反复扫描待排序记录序列,在扫描的过程中,顺次比较相邻的两个元素的大小,若逆序就交换位置 文字描述该算法: 以升序为例: 依次比较数组中相邻两个元素大小&#xf…