一个由 BlueprintPure 函数引起的 “Bug”

由 glados 发布

一个由 BlueprintPure 函数引起的 “Bug”

这篇文章会很短,其实主要是记录一下写出来的一个bug。

背景

背景主要是测试一个功能,用到了一个 BlueprintPure 函数:

QQIMAGE5SW2WSC

总体函数的逻辑大概是这样的:

QQ20220905163942

结果测试发现,运行效果如下:

QQImage_9NJ295GT

分析

实际上这是因为 BlueprintPure 函数是每次在节点中访问一次就会执行一次。上面的程序逻辑中,我们执行了两次访问操作(一次是转换成字符串,一次是设置到名为 GuardBuyingUStruct 成员变量中),正是因为这两次访问操作,导致生成了两个不一样的随机数。

所以只需要将逻辑改成:

20220905164648

即只读取一次,并将得到的结果保存到变量中,后面要用的时候都访问该变量即可避免多次执行 BlueprintPure 类型的随机数生成函数,每次都获得一个新的随机数。


暂无评论

发表评论