按钮

可以响应玩家触控输入的基本控件。 可以为背景和人脸图像设置自定义插图的样式。

属性

type - “按钮”。 指定控件类型。

action - 字符串。 将在玩家触摸按钮时调用的操作

enabled - 布尔可选。 默认为 true。 将控件的可视状态设置为已启用/禁用。 禁用的控件仍将接收来自玩家的输入,但 不会 根据输入更改视觉样式。

pullAction - 字符串对象可选。 当玩家在触摸过程中拉动按钮时,要调用 的作 () 。 将拉取作定义为对象(如以下示例所示)时,拉取按钮会分段,这样拉取作 items 数组中的每个项都会向该段分配一个作。 段在按钮周围均匀间距,最多允许 4 个段。

  • v4.1) 中引入的分段拉取作属性 (

    • type - “segmented”。 指定要为分段拉取作的拉取作的类型。

    • items - array。 最多包含 4 个 Action () 的数组,当玩家向该段的方向拖动或拉动控件边缘的触摸时,将调用每个作。

toggle - 布尔可选。 默认为 false

  • 如果是 false,按下按钮时将发送该按钮的输入,不按则不发送。
  • 如果 true为 ,则每次按下按钮都会在发送相应作 () 时切换。

visible - 布尔可选。 默认为 true。 确定控件是否显示给玩家进行交互。 若要在玩游戏期间进行更改,请参阅 使用游戏状态更改触摸布局

styles - 对象可选。 自定义控件的可视化表示形式。 样式表示为每个可以设置样式的状态的对象。

按钮控件可以设置以下状态的样式。

  • default - 基本样式。
  • disabled - 禁用控件时的样式。 如果未指定,则禁用控件时,将转换应用于默认样式,使其显示为禁用。
  • idle - 当玩家 与控件交互时应用。
  • activated - 当玩家触摸按钮时应用。
  • pulled - 当玩家触摸和按下按钮时应用。 对于分段拉取作,只有被拉取的单个段具有此状态的样式;其他段保留样式 activated
  • toggled - 当按钮处于切换状态且玩家未触摸按钮时应用。

每个状态的样式属性

opacity - 数字可选。 要应用于控件的不透明度。 对于除 disabled 之外的所有状态默认为 1.0。

faceImage - 对象可选。 可以是图标图像资产

background - 对象可选。 可以是 颜色图像资产。 在空闲和禁用状态下不可见。

资产维度

对于接受图像资产的每个样式对象,给定资产以基分辨率为底层,以该基分辨率的 1.5x、2.0x、3.0x 和 4.0x 比例提供。 给定图像的分辨率必须小于或等于以下最大分辨率。

对象 @1.0x @1.5x @2.0x @3.0x @4.0x
faceImage 60x60 90x90 120x120 180x180 240x240
background 60x60 90x90 120x120 180x180 240x240

备注

按钮通常用于允许玩家执行通常由物理控制器上的一个或多个物理按钮执行的操作。

利用多个作使玩家能够轻松复制组合作 (例如,同时按左缓冲键和右侧缓冲键) 。

样式设置备注

处于 activated 状态时,faceImage 以缩小 25% 的形式显示。

对于不使用自定义资产且具有 、、 gamepadAgamepadB的单个作的gamepadXgamepadY按钮,背景色具有标签和默认样式。

示例

示例 1:对应 A 按钮的跳跃按钮

用户按下按钮

{
    "type": "button",
    "action": "gamepadA",
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "jump"
            }
        }
    }
}

示例 2:映射到同时按左缓冲键和右缓冲键的“蹲点”按钮

用户按下与两个操作对应的按钮

{
    "type": "button",
    "action": [ "leftBumper", "rightBumper"] ,
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "crouch"
            }
        }
    }
}

示例 3:具有自定义人脸图像和背景图像的按钮

用户按下带有自定义资产的按钮

{
    "type": "button",
    "action": "gamepadA",
    "enabled" : true,
    "styles": {
        "default": {
            "background": {
                "type": "asset",
                "value": "hex_background"
            },
            "faceImage": {
                "type": "asset",
                "value": "one"
            }
        },
        "activated": {
            "background": {
                "type": "asset",
                "value": "hex_background_glow"
            }
        }
    }
}

示例 4:每个段具有自定义样式的分段拉取作

注意

若要设置分段拉取按钮的 pullIndicator 样式,数组的长度 items 必须与定义段的属性相同。 换句话说,每个段必须具有样式定义,或者 null 必须用于省略特定段的样式替代。

用户按下具有分段拉取作的按钮。

{
    "type": "button",
    "action": "gamepadA",
    "pullAction": {
       "type": "segmented",
       "items": [
          "gamepadB",
          "gamepadY"
       ]
    },
    "styles": {
        "default": {
           "pullIndicator": [
               {
                 "faceImage": {
                    "type": "icon",
                    "value": "sword"
                 }
               },
               {
                 "faceImage": {
                    "type": "icon",
                    "value": "block"
                 }
               }
            ]
        },
        "idle": {
           "pullIndicator": [
               null,
               {
                 "opacity": 0.5
               }
            ]
        }
    }
}

要求

最低布局版本:1.0+(样式设置支持在 2.0 以上的版本中提供)。

另请参阅

触控适配工具包参考