宏内的变量

问题描述 投票:0回答:2

如何在宏内部创建变量?我已经创建了一个包含一些宏的宏库,现在我试图弄清楚如何创建一个在宏的生命周期内存在于宏内部的局部变量。也许有办法将该数据存储在其他地方?

unreal-engine4
2个回答
1
投票

编辑宏时,使用“详细信息”面板的“输入集合”创建所需类型的虚拟变量。

请勿选中“By-Ref”复选框。

调用宏时保持悬空状态。

像使用其他变量一样使用该变量。


如果您不使用延迟或时间线等潜在功能,请改用函数。

每当需要代码重用时,我都会创建函数库。


0
投票
要使用变量创建全局宏,我执行了以下操作:

    创建宏库并将父类设置为Object(使其成为全局),例如:BP_Macro_Library
  1. 为宏工作区域创建蓝图(也是对象类,以便其他参与者可以实例化它们),例如:BP_Macro_WorkArea
  2. 使用宏所需的所有变量填充工作区蓝图。
  3. 使用宏的参与者需要使用“从类构造对象”节点实例化自己的 BP_Macro_WorkArea,并将 BP_Macro_WorkArea 指定为类。保存返回的工作区对象指针并将其传递给任何需要它的宏调用。
要使用此方法设计宏(使用变量),调用者将其工作区传递到输入引脚。此引脚必须连接到宏工作区中所有变量的每个获取/设置(因为您无法将此引脚分配给变量)。虽然有点痛,但也不算太痛。

这样做的附带好处是这些变量不是游戏类中某处的单例。在这里,每个演员都有自己的 WorkArea,因此它应该是线程安全的(取决于您的设计)。

另一个有趣的可能性(我尚未探索)是这些 WorkArea 可以用于通信,因为如果一个参与者知道另一个参与者的 WorkArea,他们也可以使用那里的变量来传递消息。

© www.soinside.com 2019 - 2024. All rights reserved.