一个由 BlueprintPure 函数引起的 “Bug”
这篇文章会很短,其实主要是记录一下写出来的一个bug。
背景
背景主要是测试一个功能,用到了一个 BlueprintPure 函数:
总体函数的逻辑大概是这样的:
结果测试发现,运行效果如下:
分析
实际上这是因为 BlueprintPure
函数是每次在节点中访问一次就会执行一次。上面的程序逻辑中,我们执行了两次访问操作(一次是转换成字符串,一次是设置到名为 GuardBuying
的 UStruct
成员变量中),正是因为这两次访问操作,导致生成了两个不一样的随机数。
所以只需要将逻辑改成:
即只读取一次,并将得到的结果保存到变量中,后面要用的时候都访问该变量即可避免多次执行 BlueprintPure
类型的随机数生成函数,每次都获得一个新的随机数。
- 分类: UnrealEngine 游戏开发
- 标签: 无标签