jaxb null 空节点_第5期 UE4 基于CustomThunk的泛型蓝图节点语法规范 (二)

1. Overview上一期讲述了CustomThunk方式实现泛型蓝图节点中前二部分,泛型蓝图节点的声明以及自定义Thunk函数体的方法,本期将继续介绍第三部分:泛型函数(Generic)的实现。虽然不同泛型蓝图节点的功能千差万别,泛型函数代码也可能迥然不同,但是ue4编写中泛型函数与编写一般的c++函数完全相同。接下来将结合具体实例(如下图所示的3个泛型蓝图节点),让大家更全面的了解泛型蓝图节...
摘要由CSDN通过智能技术生成

8ad66803904bd050cc8df912f5e2e358.png

1. Overview

上一期讲述了CustomThunk方式实现泛型蓝图节点中前二部分,泛型蓝图节点的声明以及自定义Thunk函数体的方法,本期将继续介绍第三部分:泛型函数(Generic)的实现。虽然不同泛型蓝图节点的功能千差万别,泛型函数代码也可能迥然不同,但是ue4编写中泛型函数与编写一般的c++函数完全相同。接下来将结合具体实例(如下图所示的3个泛型蓝图节点),让大家更全面的了解泛型蓝图节点的实现过程。特别提醒:在查看本期内容之前,请先了解上一期的内容。

2513b5bb7fded15b757159be5835c953.png

2. Approach

2.1 Struct to Json String节点,功能:将任意类型结构体UStruct转换Json格式字符串

9c6c00605b581013568590f2494d6f36.png
UStruct to Json String 使用示例

e9be4ee01462f0bec14d100f4c8df764.png
UStruct to Json String 输出结果

首先,在该模块的Build.cs文件中引入JsonUtilities,和Json模块,如下代码所示位置

PrivateDependencyModuleNames.AddRange(
	new string[]
	{
    
	"CoreUObject",
	"Engine",
	"Slate",
	"SlateCore",
	// ... add private dependencies that you statically link with here ...
        "JsonUtilities",
        "Json",
	}
);

由于UStruct to Json String的泛型函数,在源代码JsonObjectConverter.h中已经存在了,所以无需自己编写泛型函数,直接调用即可。

代码实现如下:

//h 文件,引入头文件 #include "JsonObjectConverter.h"

/**
	* Save any type of struct object to JSON format string, no struct type restriction
	*
	* @param	StructReference		The UStruct instance to read from
	* @return	JSON String		Json Object string to be filled in with data from the ustruct
*/
UFUNCTION(BlueprintPure, CustomThunk, meta = (CustomStructureParam = "StructReference", DisplayName = "Struct to JSON String"), Category = "File|Json")
	static void UStructToJsonObjectString(const int32& StructReference, FString& JSONString);

/// Custom execFunciton thunk for function UStructToJsonObjectString.
DECLARE_FUNCTION(execUStructToJsonObjectString)
{
    
	//Get input wildcard single variable
	Stack.Step(Stack.Obj
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值