Choose your operating system:
Windows
macOS
Linux
蓝图现在支持将整数变量声明为位掩码。这允许通过编辑器设置和取消设置各个屏蔽位(标记),而不必手动输入值。 此外,蓝图列举(Blueprint Enumerations)还可以声明为 位掩码标记(Bitmask Flags) 类型,以作为显式位标记辨识符使用。
创建位掩码变量
在 蓝图编辑器(Blueprint Editor) 中使用_蓝图类(Blueprint Class)_时,还可以创建任意整数变量并将其声明为位掩码。
通过在_蓝图列举编辑器(Blueprint Enumeration Editor)中切换 位掩码标记(Bitmask Flags) 属性,创建一个同样是位标记列举类型的_蓝图列举 (Blueprint Enumeration)。你还可以使用在C++中通过"BitmaskEnum="元数据设置的现有位标记列举类型。
在你的_蓝图(Blueprint)_中,创建一个整数变量,然后在 **详细信息(Details)** 面板中启用 **位掩码(Bitmask)** 属性。
这相当于C++代码中的"位掩码"元数据。
在 详细信息(Details) 面板的 位掩码列举(Bitmask Enum) 下拉菜单中选择你的_蓝图列举(Blueprint Enumeration)_(或现有位标记列举)。
在变量的 设置(Set) 节点上,你将能够使用下拉菜单选择变量的值。编译蓝图后,你还可以在 详细信息(Details) 面板中设置默认变量值。
在运行时构造位掩码
可以通过 创建位掩码(Make Bitmask) 节点在_蓝图类(Blueprint Class)_图中创建位掩码文字。
在图中 右键单击 并在上下文菜单中键入"创建位掩码(Make Bitmask)"。
选择 创建位掩码(Make Bitmask)。
单击节点,然后查看 详细信息(Details) 面板。使用 位掩码列举(Bitmask Enum) 下拉菜单更改与位掩码关联的列举类型。与类中定义的整数变量一样, 下拉列表中只列出已启用 位掩码标记(Bitmask Flags) 属性的列举类型。
在节点上,现在可以选择要创建的 位掩码(Bitmask)。
位掩码的使用
在蓝图中,位掩码像整数值一样处理。位掩码整数输出引脚可以连接到任何接受整数值的输入引脚;这 通常是按位OR、AND、XOR和NOT运算 。
在第一个示例中,将一个 创建位掩码(Make Bitmask) 节点传递给 按位XOR(Bitwise XOR) 节点,以切换 目标颜色标记 中存储的 红色(Red) 标记。存储颜色值的列举还将 开启 位掩码标记(Bitmask Flags) 属性。
在第二个示例中,选择(Select) 节点、 按位NOT(Bitwise NOT) 节点和 按位AND(Bitwise AND) 节点都接受整数作为输入,因此可以使用它们来选择三组颜色中的一组颜色,对它们进行切换, 然后将结果保存到 目标颜色标记 位掩码中。