ue4 怎么传递变量到另一个蓝图_第3期 ue4 泛型蓝图节点的实现及应用实例

这篇教程介绍了如何在UE4中使用UFUNCTION自定义泛型蓝图节点,以实现任意类型UObject属性的GET/SET方法。通过这种方式,可以减少蓝图之间的引用,提高性能。文章详细解释了实现过程、所需知识和实现原因,并提供了代码示例。
摘要由CSDN通过智能技术生成

be47f9d90d2254efa768e4e2e83e444a.png

1. Overview

本教程旨在讲解使用ue4 UFUNCTION说明符(Specifier)自定义泛型蓝图节点,实现UObject的任意类型属性(UProperty)GET/SET方法。如下四个泛型蓝图节点,依据UObject对象的PropertyName,GET/SET属性值,适用于v4.25之前版本。

56352cc855c84d0f9187b0a5e8c3e90f.png
泛型蓝图节点

2. Introduction

泛型蓝图节点也就是带有可变参数的蓝图节点,通用指蓝图系统中带有通配符(wildcard)类型参数的蓝图节点。实现泛型蓝图节点至少有二种方式,其一,继承UK2Node类,并根据需要实现其派生类,如常用的Cast节点,Set By-Ref Var节点等都属于此类;其二,使用UFUNCTION中CustomThunk说明符以及相应的类型说明符标识wildcard参数,并为该蓝图函数自定义DECLARE_FUNCTION()函数体,如Utilities|Array,Utilities|Map,Utilities|Set 目录下,三种容器Array、Map、Set各类操作的蓝图节点都属于此类。此外ue4内置的蓝图节点还存在着将二者结合的蓝图节点GetDataTableRow,UK2Node_GetDataTableRow类(基类UK2Node)在Editor状态下动态更新Pin,UDataTableFunctionLibrary类中GetDataTableRowFromName函数在Runtime状态下,执行具体的GetDataTableRowFromName方法,将DataTable中的RowStruct拷贝到OutRowStruct。以上二种方式各有其优缺点,本次讲解采用代码量少、实现难度低的第二种方式。

3. Required Knowledge

1. 熟悉ue4 c++ UFUNCTION宏常用关键字,

2. 自定义execFunction函数体;(预计下一讲)

4. Why

第一个问题:为什么要实现这样一类节点?

目的:(1)提升自身的编程水平,加深个人对于泛型蓝图节点的理解;(2)减少蓝图之间的引用,提升蓝图执行性能。

如下图所示,从BP_Acto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值