NarraLeaf

Button

读写蓝图所属按钮的标签、指针与交互状态

nl.button 的 Self 节点。每个节点作用于自己蓝图所属的那个按钮,不带 Element 输入,也只出现在该按钮自己的蓝图里。要操作另一个按钮,请使用 Element 分类中对应的节点

约定

  • 读取是纯节点,写入是 latent 节点。 本页每个 Get 节点都是 Pure。每个 Set 节点都是 Latent:写入要经过宿主并异步完成,执行会等它完成后再继续
  • 没有改变任何东西的写入什么都不做。 宿主会把传入值和当前值比对,相同时直接返回,因此不会排队重绘,也不会触发 On Flush
  • 布尔输入会回落到当前值。 enabled 和 visible 不能在卡片上填字面量;如果没有接线,或连线求值为 null,属性保持原样。接入的非布尔值只有在它是字符串 "true" 或 "1" 时才算 true
  • 外观属于 Displayable。 几何、透明度和外观变体在那里设置,对所有控件通用,不在这里
  • 本页有两个节点不在创建浮窗里。 Get Variant 和 Set Variant 已被 Displayable 的变体节点取代并隐藏。这里记录它们,是因为在那次切换之前创作的蓝图仍然留着它们、也仍然能跑,而不是因为你还能新建一个
  • 这些节点都不能在 Blueprint Value 中运行。 Get 节点确实是纯节点,但 Blueprint Value 在 widgetValue 宿主上求值,而本页所有节点的作用域都限定在按钮自己的主蓝图。要在 Blueprint Value 里读这个按钮,请放一个指向它的 Element 字面量,再用 Element 分类的读取节点。props.label 本身就是一个可以由 Blueprint Value 驱动的属性
  • 可见与启用节点各合为一组。 浏览创建浮窗时,Get Visible 与 Get Enabled 合为一行获取可见性或启用状态,Set Visible 与 Set Enabled 合为一行设置可见性或启用状态。搜索时每个节点按自己的名称列出;已放置的卡片可用标题旁的 ▾ 在两者之间切换。见同类节点

Set Label

blueprint.button.setLabel · Latent

Set Label(设置标签)写入按钮文本。没有接线且卡片字段留空时它会写入空字符串——也就是清空标签,而不是保持不变

它写入的标签在所有语言中都按写入的内容显示,优先于翻译键、按钮自身标签的译文和 Blueprint Value,直到页面重新打开。第一次写入的标签即使与屏幕上的相同也算一次变化。首次写入之前,按钮自身的标签是它的默认值,见界面文本

引脚方向类型说明
inin · exec—
nextout · exec—
labelin · datastring可在节点卡上直接填字面量

Get Label

blueprint.button.getLabel · Pure

Get Label(读取标签)读取屏幕上显示的标签:游戏运行时写入过的标签;否则是按钮的翻译键的文字或它自身的标签在玩家当前语言中的文本;或者是 Blueprint Value、列表行字段给出的标签

引脚方向类型说明
labelout · datastring

Set Pointer

blueprint.button.setPointer · Latent

Set Pointer(设置指针)设置按钮的默认鼠标指针形态——和 Appearance 检视器 Mouse 区写入的是同一个字段。没有对应的 Get Pointer

引脚方向类型说明
inin · exec—
nextout · exec—

卡片字段

字段含义
cursorauto、default、pointer、text、move、grab、grabbing、crosshair、help、wait、progress、not-allowed 之一

auto 不是一种存下来的形态,而是在运行时解析:按钮能派发点击时解析为 pointer,不能时解析为 default。enabled 为 false 的按钮无论这里设了什么都显示 not-allowed,所以对禁用按钮改指针在重新启用之前都看不出来

Set Enabled

blueprint.button.setEnabled · Latent

Set Enabled(设置可交互)传入 false 会禁用交互。按钮仍然渲染、仍然占布局;它不再接收点击,并切换到 not-allowed 指针

引脚方向类型说明
inin · exec—
nextout · exec—
enabledin · databoolean

Get Enabled

blueprint.button.getEnabled · Pure

Get Enabled(读取可交互)

引脚方向类型说明
enabledout · databoolean

Set Visible

blueprint.button.setVisible · Latent

Set Visible(设置可见性)

引脚方向类型说明
inin · exec—
nextout · exec—
visiblein · databoolean

visible 传 false 会把按钮及其子树从运行时元素树上摘掉——这不是 CSS 隐藏。控件会卸载,本蓝图随之停止,回来时 Init 会重新执行,因此隐藏后的按钮无法自己再现身:必须由别的地方对它调用 Set Button Visible。想要隐藏但保持挂载,请使用 Displayable Set Display

Get Visible

blueprint.button.getVisible · Pure

Get Visible(读取可见性)

引脚方向类型说明
visibleout · databoolean

Set Variant

blueprint.button.setVariant · Latent

Set Variant(设置变体)在创建浮窗中隐藏——你无法添加这个节点。它已被 Displayable Set Variant 取代,后者在卡片上按名称选择变体,并覆盖所有带变体的控件。它仍然可以执行,因此切换之前创作的蓝图继续有效

引脚方向类型说明
inin · exec—
nextout · exec—

变体 id 来自旧文档存在该节点 variantId 输入上的值;当前定义并不声明这个引脚,所以新放置的卡片上没有任何可设的东西。传入按钮并不拥有的 id 会抛出图执行错误;传入空 id 则重置为默认变体

Get Variant

blueprint.button.getVariant · Pure

Get Variant(读取变体)出于同样的原因在创建浮窗中隐藏,而且没有可用的替代品:Displayable Get Variant 同样是隐藏的,它输出的变体 UUID 只是内部持久化值,新蓝图里没有任何入口消费它

引脚方向类型说明
variantIdout · datastring有运行时覆盖时返回覆盖值,否则返回 authored 默认变体,再否则返回第一个变体。按钮没有变体时为""

本页目录